簡體   English   中英

在 Python 中根據條件拆分列表

[英]Split list based on condition in Python

我有一個這樣的清單:

mylist = [2, 3, 4, 0, 0, 0, 6, 7, 8, 0, 4, 9, 0, 2, 0, 2, 0, 20, 0]

我需要刪除 0 並收集作為組在一起的其余數字。

這是我到目前為止所做的,但數字沒有分成組。

mylist = [2, 3, 4, 0, 0, 0, 6, 7, 8, 0, 4, 9, 0, 2, 0, 2, 0, 20, 0]
result = []
indexes = []
for i, j in enumerate(mylist):
    if j != 0:
        result.append(j)
        indexes.append(i)

print(result)
print(indexes)

我不知道如何從這里繼續。

這是我正在尋找的結果:

result = [[2, 3, 4], [6, 7, 8], [4, 9], [2], [2], [20]]

謝謝你。

使用itertools.groupby

前任:

from itertools import groupby

mylist = [2, 3, 4, 0, 0, 0, 6, 7, 8, 0, 4, 9, 0, 2, 0, 2, 0, 20, 0]
result = [list(v) for k, v in groupby(mylist, lambda x: x!=0) if k]
print(result)

輸出:

[[2, 3, 4], [6, 7, 8], [4, 9], [2], [2], [20]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM