我有一个清单:lst = [('asd'),('fgb'),('tre'),...]
就像这样。我想删除"("和")"人物。结果必须是:['asd','fgb','tre',...]
答案 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']