从Python中删除列表中的字符

时间:2015-12-26 00:28:22

标签: python list

我有一个清单:lst = [('asd'),('fgb'),('tre'),...]就像这样。我想删除"("和")"人物。结果必须是:['asd','fgb','tre',...]

2 个答案:

答案 0 :(得分:2)

请注意,字符串周围的()只是python中的一个语法糖,没有字面含义。

示例:

>>> 'asd' == ('asd')
True

如果你真的想解决这个问题,可以采用以下方法:

>>> x = [('asd'),('fgb'),('tre')]
>>> x
['asd', 'fgb', 'tre']
>>> xx = [i for i in x]
>>> xx
['asd', 'fgb', 'tre']

但它对python解析列表的方式没有任何影响

答案 1 :(得分:1)

如果您的列表与您发布的内容完全相同,则括号不执行任何操作,因此无法删除:

>>> [('asd'),('fgb'),('tre')]
['asd', 'fgb', 'tre']

我假设括号实际上是你的字符串的一部分(你可能放错了引号),你只想要删除列表中字符串的开头和开头的那些:

>>> lst = ['(asd)', '(fgb)', '(tre)']
>>> [x[1:-1] for x in lst]
['asd', 'fgb', 'tre']

否则,如果您要删除所有个括号,可以使用re

>>> [re.sub('\)|\(', '', s) for s in lst]
['asd', 'fgb', 'tre']

或链str.replace

>>> [s.replace('(', '').replace(')', '') for s in lst]
['asd', 'fgb', 'tre']