這應該是一個相當直接的python問題,但我被卡住了,語法正確。從一個字符串解析int - > list的地圖
比方說,我有一個字符串:
"1:a,b,c::2:e,f,g::3:h,i,j"
,我想將其轉換爲一個地圖,像這樣:
{'1': ['a', 'b', 'c'], '2': ['e', 'f', 'g'], '3': ['h', 'i', 'j']}
這將如何做呢?
我可以弄清楚如何使用嵌套for循環來做到這一點,但僅僅在一行中做就很酷。
謝謝!
這應該是一個相當直接的python問題,但我被卡住了,語法正確。從一個字符串解析int - > list的地圖
比方說,我有一個字符串:
"1:a,b,c::2:e,f,g::3:h,i,j"
,我想將其轉換爲一個地圖,像這樣:
{'1': ['a', 'b', 'c'], '2': ['e', 'f', 'g'], '3': ['h', 'i', 'j']}
這將如何做呢?
我可以弄清楚如何使用嵌套for循環來做到這一點,但僅僅在一行中做就很酷。
謝謝!
這裏有一個辦法:
dict((k, v.split(',')) for k,v in (x.split(':') for x in s.split('::')))
可怕名稱,但在其他方面完美+1 – delnan 2010-10-12 20:41:06
@delnan:不完美,使用list()是多餘的 – 2010-10-12 21:33:12
@John Machin:謝謝你指出。我不確定split是否會在所有版本的Python中返回一個列表,以便安全地使用它。但我現在檢查,它似乎總是這樣。現在修復。 :) – 2010-10-12 21:40:14
提示:看看,你可以用它來打破你的輸入字符串成塊,從而可以進一步(有更多的通話可能分裂)工作的字符串的分割方法 – stew 2010-10-12 20:38:26