Skip to main content
 首页 » 编程设计

python之有没有更好的方法来检查按顺序更改的值

2025年05月04日12zhoujg

我有一个如下所示的列表:

list = ['A', 'A', 'B', 'A', 'B', 'A', 'B'] 

而且,我想在其他值(“B”)到来之前连续计算第一个值(在上述情况下为“A”)的数量。

所以我写了这样的代码:

history = list[0] 
number_A = 0 
number_B = 0 
for i in list: 
    if history != i: 
        break 
 
    if i == 'A': 
        number_A += 1 
        history = 'A' 
    else: 
        number_B += 1 
        history = 'B' 

但是,我认为这很不整洁。 有没有更简单的方法来完成这个过程?

感谢阅读。

请您参考如下方法:

使用 groupby使用默认的按键功能,可以统计第一条石斑鱼的元素数量:

from itertools import groupby 
 
def count_first(lst): 
    if not lst: 
        return 0 
    _, grouper = next(groupby(lst)) 
    return sum(1 for _ in grouper) 
 
print(count_first(['A', 'A', 'B', 'A', 'B', 'A', 'B']))   
# 2