如果L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
切片爲「「在python空間
將如何切L到讓一切都交給第一空間
['abc,'foo','bar']
如果L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
切片爲「「在python空間
將如何切L到讓一切都交給第一空間
['abc,'foo','bar']
In [1]: L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
In [2]: [x[0].split(' ')[0] for x in L]
Out[2]: ['abc', 'foo', 'bar']
L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
print [x[0].split()[0] for x in L]
for i in range(len(L)):
s = L[i][0]
s = s.split(' ')[0]
L[i] = s
Ewwww。學習列表理解,老兄! – ulidtko 2011-04-26 18:37:56
@ulidtko嗯,我給出了一個答案,我會採取的方式去做,並不意味着它必須被接受或upvoted – keepitreall89 2011-04-26 18:39:37
在情況下,您目前,空間總是出現在同一個位置。如果你知道這將是的話,你可以這樣做:
L = [['abc 1234',2], ['foo 1',2] , ['bar 12312434',2]]
L2 = [x[0][0:3] for x in L]
print L2
輸出:
[ 'ABC', '富', '酒吧']
中當然,如果空間可能出現在不同的位置,那麼使用str.split()的解決方案之一會更好。
我發現列表理解有時更難看了,我希望保持獨立的循環和提取:
def extract(element):
"""Extracts the string until the first space of the first element of a list
>>> extract(['abc 1234',2])
'abc'
"""
return element[0].split()[0]
,這樣就可以做單一元素的一些測試:
extract(L[2])
'bar'
,然後用一個列表理解或使用地圖應用此[適用功能到列表中的每個元素]:
map(extract,L)
['abc', 'foo', 'bar']
我喜歡這些Python速度編碼。他們清楚地顯示了在Python中編程的快速實踐。 ';)' – ulidtko 2011-04-26 18:33:29
當然,如果它總是三個第一個字符,你可以在[L]中使用'[i [0] [0:3]'。 – Benjamin 2011-04-26 19:00:02