2
['00', '11"', 'aa', 'bb', "cc'"] 

这是在 Python 中。我想去掉双引号,这样我的输出就变成了

['00', '11', 'aa', 'bb', 'cc']

我该怎么做呢?

4

3 回答 3

6

看起来您必须在str.strip()这里使用该功能两次。首先删除",然后 '

In [1]: lis=['00', '11"', 'aa', 'bb', "cc'"] 

In [2]: [x.strip('"').strip("'") for x in lis]
Out[2]: ['00', '11', 'aa', 'bb', 'cc']

或者正如@DSM 所建议的,我们不需要 2 次strip()调用:

In [14]: [x.strip("'" '"') for x in lis]
Out[14]: ['00', '11', 'aa', 'bb', 'cc']

因为,相邻的字符串文字会自动组合:

In [15]: "'" '"'
Out[15]: '\'"'

In [16]: "a"'b'"c"'d'
Out[16]: 'abcd'

另一种选择可以是regex

In [6]: [re.search(r'\w+',x).group() for x in lis]
Out[6]: ['00', '11', 'aa', 'bb', 'cc']
于 2013-01-20T23:36:25.447 回答
1

Python 2.6 和更新的 Python 2.x 版本:

line = ['00', '11"', 'aa', 'bb', "cc'"] 
line = [x.translate(None,'\'\"') for x in line]
于 2013-01-20T23:45:51.827 回答
0

您应该使用正则表达式。看看这个网站了解更多信息。

http://www.regular-expressions.info/python.html

正则表达式是查找和替换的代码版本。您正在寻找的是使用诸如 r'[\'\"]' 之类的正则表达式并将其替换为空字符串。虽然 Python 不是我最大的优势,但这应该可以推动您朝着正确的方向前进。

于 2013-01-20T23:47:36.963 回答