2016-08-17 105 views
-4

從字典/列表中,如何將列表拆分\ 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

的可能的複製[字符串分割到Python的list(HTTP://計算器.com/questions/743806/split-string-into-a-list-in-python) – JETM

+0

你想要的輸出顯示values數組中的字符串,由\ n分割,然後引導(但不是尾隨)空白空白。空白的剝離是否顯着?如果是這樣,你可以把這個問題呢?另外,你能否給出一個更好的例子,例如當原始字典中有多個條目時? – davmac

回答

0

在這裏你去:

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

這實際上給出了[['value1','value2','value3','']',所以如果它是空字符串,你需要切掉最後一個項目。 –

+0

謝謝我沒有意識到d [k]輸出str(不像d.values()輸出列表)!! –

0

你的意思是你想要的值作爲一個平面列表?像這樣?

>>> {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()})