从字符串中的单引号中删除双引号

时间:2013-01-20 23:33:24

标签: python quote

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

这是在Python中。我想剥掉双引号,以便我的输出变为

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

我该怎么做?

3 个答案:

答案 0 :(得分:5)

看起来你要在这里两次使用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']

答案 1 :(得分:1)

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

line = ['00', '11"', 'aa', 'bb', "cc'"] 
line = [x.translate(None,'\'\"') for x in line]

答案 2 :(得分:0)

您应该使用正则表达式。有关更多信息,请查看此站点。

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

正则表达式是查找和替换的代码版本。你要找的是使用正则表达式,例如r' [\' \"]'并用空字符串替换它。虽然Python不是我最大的优势,但这应该会让你朝着正确的方向发展。