我試圖分裂出一個列表,如標題:索引/拆分[「ABC:2」,「CDE:3」]
['ABC:2', 'CDE:1']
最後,我想之前分配位並在:
之後對兩個不同的變量進行迭代。
我正在使用Python 2.7。
我試圖分裂出一個列表,如標題:索引/拆分[「ABC:2」,「CDE:3」]
['ABC:2', 'CDE:1']
最後,我想之前分配位並在:
之後對兩個不同的變量進行迭代。
我正在使用Python 2.7。
>>> L = ['ABC:2', 'CDE:1']
>>> for i, j in (x.split(":") for x in L):
... print i, j
...
ABC 2
CDE 1
這正是我所需要的,非常感謝。只在uni上做了3個月的python,之前沒有遇到過這種格式。是列表理解?不管它是什麼病都讀了它! – chris
@ user1710566,它被稱爲生成器表達式。語法的工作原理類似於列表理解,但它每次只產生一個結果,所以使用的內存少於創建臨時列表 –
使用高階函數(我感覺更舒服):
>>> xs = ['ABC:2', 'CDE:1']
>>> split_xs = map(lambda s : s.split(":"), xs)
>>> for x, y in split_xs:
... print(x, y)
...
ABC 2
CDE 1
那麼肯定應該使用'map(operator.methodcaller('split',':') ,xs)'? –
@JonClements,這是更長和更復雜。後者困擾我更多。 – missingfaktor
歡迎堆棧溢出!我們鼓勵你[研究你的問題](http://stackoverflow.com/questions/how-to-ask)。如果你已經[嘗試了某些東西](http://whathaveyoutried.com/),請將其添加到問題中 - 如果沒有,請先研究並嘗試您的問題,然後再回來。 – 2012-10-08 11:10:06
你對格式有任何控制權嗎?如果格式稍有不同,則可以使用JSON解析器。 – SDC