Python|列表中的连续最大出现次数
有时,在使用Python列表或竞争性编程设置时,我们可能会遇到一个子问题,在该子问题中,我们需要获取一个连续出现次数最多的元素。解决它的知识可以有很大帮助,并且可以在需要时使用。让我们讨论可以执行此任务的某些方式。
方法 #1:使用groupby() + max()
+ lambda
可以使用上述功能的组合来解决此任务。在此,我们使用groupby()
对每个出现的数字进行分组,并使用max()
获得它的最大值。 lambda函数提供实用程序逻辑来执行此任务。
# Python3 code to demonstrate working of
# Consecutive Maximum Occurrence in list
# using groupby() + max() + lambda
from itertools import groupby
# initializing list
test_list = [1, 1, 1, 2, 2, 4, 2, 2, 5, 5, 5, 5]
# printing original list
print("The original list is : " + str(test_list))
# Consecutive Maximum Occurrence in list
# using groupby() + max() + lambda
temp = groupby(test_list)
res = max(temp, key = lambda sub: len(list(sub[1])))
# printing result
print("Maximum Consecutive Occurring number is : " + str(res[0]))
输出 :
The original list is : [1, 1, 1, 2, 2, 4, 2, 2, 5, 5, 5, 5]
Maximum Consecutive Occurring number is : 5