所以我有一個變量a
其中包含:單獨的對象,並把它們分成兩人一組
WOOP:2,DERV:2,WHAT:2,MATE:1
而且我想分離這些所以它看起來像這樣:
[('WOOP',2),('DERV',2),('WHAT',2),('MATE',1)]
所以我有一個變量a
其中包含:單獨的對象,並把它們分成兩人一組
WOOP:2,DERV:2,WHAT:2,MATE:1
而且我想分離這些所以它看起來像這樣:
[('WOOP',2),('DERV',2),('WHAT',2),('MATE',1)]
這一個班輪會做
L = [(f1, int(f2)) for x in a.split(",") for f1, f2 in (x.split(":"),)]
不過我可能會寫,而不是
L = []
for x in a.split(","):
f1, f2 = x.split(":")
L.append((f1, int(f2)))
試試這個:
l = [ tuple(s.split(':')) for s in a.split(',') ]
l = [ (t[0], int(t[1])) for t in l ]
如果您沒有問題[['WOOP',2], ['DERV',2], ... ]
,那麼即使simplier:
l = [ s.split(':') for s in a.split(',') ]
l = [ (t[0], int(t[1])) for t in l ]
我會避免在同一行這樣做:
>>> s = 'WOOP:2,DERV:2,WHAT:2,MATE:1'
>>> def convert_pair(pair):
... word,number = pair.split(':')
... return str(word),int(number)
...
>>> [convert_pair(pair) for pair in s.split(',')]
[('WOOP', 2), ('DERV', 2), ('WHAT', 2), ('MATE', 1)]
雖然我想不出在這個convert_pair
這個更好的名字 時間。
如果是一個字符串,你可以使用這樣的事情:
result = map(lambda x: (x.split(":")[0], int(x.split(":")[1])), a.split(",")
如果它是一個字典,它的簡單得多:
result = zip(a.keys(), a.values())
希望這有助於
PEP需求單曲/([|])/ \ 1 /'。另外,你不會將第二項轉換爲int。 – delnan 2011-04-02 21:39:22
它的工作原理,但我希望數字保持整數,而不是一個字符串 – Janezcka 2011-04-02 21:40:15
對不起,我錯過了int - 看到我更新的答案。我試圖提出一行,但我腦海中的一切都過於複雜或不是最佳 – pajton 2011-04-02 21:49:04