簡體   English   中英

在列表中查找相同的連續條目並查找有多少連續條目

[英]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.

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