2012-11-29 7 views
-3
에서 목록을 분할

가능한 중복 :
Remove leading and trailing zeros from multidimensional list in Python파이썬은 제로

나는 목록 등이있는 경우 :

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

나는 제로에서이 문제를 분할 할을하고 그들을 던져 버려 결국 내가 끝내도록하자.

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

도움을 주시면 감사하겠습니다.

+0

이것이 왜 심하게 떨어지고 있는지 잘 모르겠다. – 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]]