2016-07-23 49 views
0

私は以下のパターンのリストを持っていますが、それぞれのサブリストの先頭と末尾にある"を取り除きたいと思います。私は、ストリップを置き換えようとしましたが、リストの属性ではないので、AttributeErrorとなります。pythonリストから引用符を削除する

lst = [["'123', 'Name1', 'Status1'"], ["'234', 'Name2', 'Status2'"]] 

私は私の最終的な結果として、以下を探しています:

lst = [['123', 'Name1', 'Status1'], ['234', 'Name2', 'Status2']] 

各サブリストから二重引用符を削除する方法を提案してください。

+0

取得しようとしている出力を共有できますか?それは疑問をより明確にするだろう。 – Mureinik

+0

現在、各リストには1つの文字列アイテムしか含まれていません。 –

+0

探している出力を説明できますか?現在、 'lst'には2つのリストがあり、それぞれに単一の文字列が含まれています。 (これらの文字列のいずれも二重引用符を含みません) – smarx

答えて

3

あなたはreplaceコンマを削除した後shlex.splitを使用することができます。

import shlex 

lst = [["'123', 'Name1', 'Status1'"], ["'234', 'Name2', 'Status2'"]] 
r = [shlex.split(x[0].replace(',', '')) for x in lst] 
# [['123', 'Name1', 'Status1'], ['234', 'Name2', 'Status2']] 
+1

shud :) – marmeladze

1

これはトリックを行う必要があります「コンマとスペースで区切られた単一引用符に包まれた文字列」

result = [[element.strip("'") for element in sub_list[0].split(', ')] for sub_list in lst] 

私は文字列の形式があることを仮定しているが私のコードはおそらく[["'A comma here, changes the parsing', 'no comma here'"], ...]のような入力で期待されることをしないことに注意してください。 (私はあなたがそれ2を検討したいと想像しながら、これは、リスト内の三つの要素のように私のコードになります)

EDIT

これはおそらく、長いリスト内包と比較して、理解しやすいです。

result = [] 
for sub_list in lst: 
    s = sub_list[0] 
    result.append([element.strip("'") for element in s.split(', ')]) 
+0

これは、ありがとう、 – ankitpandey

関連する問題