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

これは Python です。出力が次のようになるように、二重引用符を取り除きたい

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

どうすればいいですか?

4

3 に答える 3

6

str.strip()ここで関数を 2 回使用する必要があるようです。最初に を削除し"、次に を削除し'ます。

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 に答える