[英]Return the longest list of consecutive negative numbers using itertools.groupby
鑒於系列:
series = [2, 6, 9, -1, 1, -3, -3, -3, 1,-4]
如何使用itertools.groupby
返回列表[-3, -3, -3]
?
試:
from itertools import groupby
max((list(g) for k, g in groupby(series, key=lambda i: i < 0)), key=len)
返回:
[2, 6, 9]
提前致謝
你可以這樣做:
from itertools import groupby
series = [2, 6, 9, -1, 1, -3, -3, -3, 1, -4]
result = max((list(group) for key, group in groupby(series) if key < 0), key=len)
print(result)
Output
[-3, -3, -3]
您的代碼的問題是您在 groupby 中使用了錯誤的鍵key=lambda i: i < 0
,如果鍵為正,只需過濾結果。
檢查你的k
值是真還是假。
from itertools import groupby
series = [2, 6, 9, -1, 1, -3, -3, -3, 1,-4]
x = max([list(g) for k, g in groupby(series, key=lambda i: i < 0) if k == True ], key=len)
print(x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.