[英]Finding identical consecutive entries in a list and finding how many consecutive entries there are
我有一個 Boolean 值的列表,例如
bool_list = [True, True, False, False, True, True, True, True, True, False]
我需要以 [[a,b],[c,d],...] 的方式制作列表列表,其中列表中的第一個條目(例如 a 和 c)是bool_list 中的第一個 True 有 2 個或多個連續 True 條目(在這種情況下為 a=0 和 c=4),列表中的第二個條目(例如 b 和 d)是 bool_list 中連續 True 條目的數量(b=2在這種情況下,d=4)。 如何在不導入任何新內容的情況下編寫代碼來解決這個問題。 謝謝:)。
僅具有內置功能的基於生成器的實現:
def gen(bl):
count = true_start = 0
for i, b in enumerate(bl):
if b:
if not count:
true_start = i
count += 1
elif count > 1:
yield (true_start, count)
count = 0
if count:
yield (true_start, count)
>>> bool_list = [True, True, False, False, True, True, True, True, True, False]
>>> list(gen(bool_list))
[(0, 2), (4, 5)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.