-1

重複の可能性:
Python の多次元リストから先頭と末尾のゼロを削除する

次のようなリストがある場合:

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

これをゼロで分割して破棄したいので、最終的には次のようになります。

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

どんな助けでも大歓迎です。

4

2 に答える 2

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]
于 2012-11-29T20:55:24.317 に答える
-1

ネストされたリストを入力として持つのは少し特殊すぎますが、この関数は 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]]
于 2012-11-29T20:55:40.503 に答える