取代<&引用;加上*&引用;使用Python正则表达式

取代<&引用;加上*&引用;使用Python正则表达式,python,python-2.7,Python,Python 2.7,我需要遍历列表“listb”中的字符串,替换字符“参见 根据Seth的评论,使用正则表达式实现这一点的最佳方法是: listb = [re.sub(r'<',r'*', i) for i in listb] 如果您想要一个包含所有替换项的新列表,请执行以下操作: >>> listx = [] >>> for i in listb: ... listx.append(re.sub(r'<',r'*', i)) ... >>&g

我需要遍历列表“listb”中的字符串,替换字符“参见

根据Seth的评论,使用正则表达式实现这一点的最佳方法是:

listb = [re.sub(r'<',r'*', i) for i in listb]
如果您想要一个包含所有替换项的新列表,请执行以下操作:

>>> listx = []
>>> for i in listb:
...     listx.append(re.sub(r'<',r'*', i))
... 
>>> listx
['abc', '*asd*', '**>>**']
>>> listb
['abc', '<asd*', '<<>>**']
>>> listb = listx
>>listx=[]
>>>对于列表B中的i:
…listx.append(re.sub(r'>**')]
>>>列表B
参见

根据Seth的评论,使用正则表达式实现这一点的最佳方法是:

listb = [re.sub(r'<',r'*', i) for i in listb]
如果您想要一个包含所有替换项的新列表,请执行以下操作:

>>> listx = []
>>> for i in listb:
...     listx.append(re.sub(r'<',r'*', i))
... 
>>> listx
['abc', '*asd*', '**>>**']
>>> listb
['abc', '<asd*', '<<>>**']
>>> listb = listx
>>listx=[]
>>>对于列表B中的i:
…listx.append(re.sub(r'>**')]
>>>列表B

['abc','
>>我的字符串='fowiejf
>>>我的字符串='fowiejf这可以在一行的列表理解中完成:
listb=[re.sub(r'@SethMMorton是的,这是一种更好、更具Python风格的方法。不过,我想让它尽可能接近他的原始代码。为了完整性,我将在我的答案中添加您的评论。谢谢!非常感谢,问题解决了。然而,我不能相信我看过的每一篇教程都说re.sub中的最后一个参数是正确的更换次数应为“0”“不受限制。而且,从逻辑上讲,我希望sub确实会进行替换,从而更改原始值。感谢您将其清除。@user2684432如果您查看我链接的文档,最后一个可选参数将使用被替换的次数。默认值为0。因此,我真正给出的代码是
I=re.sub(r'
sub()
不进行替换也不会是您的问题。
循环语法是。每次
i
都会创建一个新变量,而不是指向列表中元素的指针。这可以在一行的列表理解中完成:
listb=[re.sub](r'@SethMMorton是的,这是一种更好、更具Python风格的方法。不过,我想让它尽可能接近他的原始代码。为了完整性,我将在我的答案中添加您的评论。谢谢!非常感谢,问题解决了。然而,我不能相信我看过的每一篇教程都说re.sub中的最后一个参数是正确的更换次数应为“0”作为无限。另外,我在逻辑上希望sub真的进行替换,更改原始值。感谢您将其清除。@user2684432如果您查看我链接的文档,最后一个可选参数需要替换的次数。默认值为0。因此,我真正给出的代码是
I=re.sub(r'
sub()
不进行替换也不会是您的问题。
循环语法是。每次
i
都会创建一个新变量,而不是指向列表中元素的指针。
>>> my_string = 'fowiejf<woiefjweF<woeiufjweofj'
>>> my_string.replace('<', '*')
'fowiejf*woiefjweF*woeiufjweofj'