重複の可能性:
Python の多次元リストから先頭と末尾のゼロを削除する
次のようなリストがある場合:
my_list = [[1,2,0,1], [1,0,0,1]]
これをゼロで分割して破棄したいので、最終的には次のようになります。
my_list = [[[1, 2], [1]], [[1],[1]]]
どんな助けでも大歓迎です。
重複の可能性:
Python の多次元リストから先頭と末尾のゼロを削除する
次のようなリストがある場合:
my_list = [[1,2,0,1], [1,0,0,1]]
これをゼロで分割して破棄したいので、最終的には次のようになります。
my_list = [[[1, 2], [1]], [[1],[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]
ネストされたリストを入力として持つのは少し特殊すぎますが、この関数は 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]]