2012-11-29 93 views
-3
分裂名單

可能重複:
Remove leading and trailing zeros from multidimensional list in Python的Python在零

,如果我有一個列表,例如:

my_list = [[1,2,0,1], [1,0,0,1]] 

我想在零分裂這一點,把它們扔掉,這樣我就得到了類似的東西:

​​

任何幫助非常感謝。

+0

不知道爲什麼這是如此嚴重的downvoted ... – samoz

+4

這是你連續第三個問題,並在每個你似乎沒有自己嘗試過任何東西。 –

+0

你有什麼問題? –

回答

1

鴻溝的征服,你可以使用列表理解把它轉化爲一個簡單的問題

def split_a_list_at_zeros(L): 
    ... 
    return the_split_list 

my_list = [split_a_list_at_zeros(item) for item in my_list] 

和Akavall給出了一個很大的提示分裂列表

from itertools import groupby 
def split_a_list_at_zeros(L): 
    return [list(g) for k, g in groupby(L, key=lambda x:x!=0) if k] 
0

具有嵌套列表作爲輸入是有點過於具體,但此功能將拆分基於另一個數字的數字列表,使用與string.split完全相同的樣式()

def nsplit(number_list,key): 
    s=''.join(map(chr,number_list)) 
    return [map(ord,x) for x in s.split(chr(key))] 

print nsplit([1,2,0,1],0) 

[[1,2],[1]]