Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列表的字符串中替换_Python_String - Fatal编程技术网

Python 在列表的字符串中替换

Python 在列表的字符串中替换,python,string,Python,String,我可以在单个字符串中轻松使用re.sub,如下所示: >>> a = "ajhga':&+?%" >>> a = re.sub('[.!,;+?&:%]', '', a) >>> a "ajhga'" 如果我在字符串列表中使用这个,那么我就不会得到结果。我正在做的是: >>> a = ["abcd:+;", "(l&'kka)"] >>> for x

我可以在单个字符串中轻松使用
re.sub
,如下所示:

  >>> a = "ajhga':&+?%"
  >>> a = re.sub('[.!,;+?&:%]', '', a)
  >>> a
      "ajhga'"
如果我在字符串列表中使用这个,那么我就不会得到结果。我正在做的是:

  >>> a = ["abcd:+;", "(l&'kka)"]
  >>> for x in a:
        ...     x = re.sub('[\(\)&\':+]', '', x)
        ... 
  >>> a
      ['abcd:+;', "(l&'kka)"]
如何从列表中的字符串中删除表达式

for index,x in enumerate(a):
    a[index] = re.sub('[\(\)&\':+]', '', x)

您正在更改值,但不更新列表。枚举是一个函数,它返回每个列表项

中的元组<代码>(index,value)< /> >,取决于你想要的结果字符串是什么,你可以考虑相反的方法来指示你想要保留什么(白名单)并剔除所有其他字符。这可以通过列表理解轻松完成,而不是
re
>>> a = ["abcd:+;", "(l&'kka)"]
>>> a = [re.sub('[\(\)&\':+]', '', x) for x in a]
>>> a
['abcd;', 'lkka']
>>>