2016-08-17 5 views
-4

dict/listから、\ nでリストを分割する方法。例:分割リストをPythonで区切って

In [1]: d = {'key1': 'value1\n value2 \n value3\n'} 

In [2]: d.values() 
Out[2]: ['value1\n value2 \n value3\n'] 

所望の出力:

['value1', 'value2 ', 'value3'] 

私は、既存の例を見ますが、この特定のものを見つけることができませんでした。ここで

+3

可能な重複します(http:// stackoverflowの.com/questions/743806/split-string-into-a-list-in-python) – JETM

+0

あなたの望む出力は '\ n'で分割された値配列の文字列を表示し、 (末尾ではない)空白が削除されます。空白の削除は重要ですか?もしそうなら、それを質問に入れられますか?また、元のdictに複数のエントリがある場合など、望ましい出力のより良い例を与えることができますか? – davmac

答えて

0

あなたが行く:

d['key1'].split('\n') 
+0

これは実際に '['value1'、 'value2'、 'value3'、 '']'を与えるので、空の文字列の場合は最後の項目をスライスする必要があります。 –

+0

ありがとう、私はd [k]がstrを出力することを認識しませんでした(リストを出力するd.values()とは異なります)! –

0

あなたがフラットなリストとして値をしたいわけ?このようなもの? [Pythonでリストに分割する文字列]の

>>> {k: [x.strip() for x in v.splitlines()] for k, v in d.iteritems()} 
{'key1': ['value1', 'value2', 'value3']} 
+0

BPLが指摘しているように、Python3を使用する場合、iteritemsからiterを削除します。なぜ彼は私の答えを複製した、私は知らない。 –

0

のPython 2.xの

d = {'key1': 'value1\n value2 \n value3\n'} 
print {k: [x.strip() for x in v.splitlines()] for k, v in d.iteritems()} 

のPython 3.xの

d = {'key1': 'value1\n value2 \n value3\n'} 
print({k: [x.strip() for x in v.splitlines()] for k, v in d.items()}) 
関連する問題