我有一个清单,例如:
test_list = [1, 43, 23, 4, 4, 4, 4, 4, 4, 2, 4, 4]
数字的最大序列4
构成6
项目,我如何实现一个算法来计算这个?
我试过这个,结果返回 8:
for item in test_list:
if item == 4:
count += 1
*count 以前在我实现的更大的算法中定义
可以使用itertools.groupby
&来搜索最长的一组连续相等的值max
>>> from itertools import groupby
>>> test_list = [1, 43, 23, 4, 4, 4, 4, 4, 4, 2, 4, 4]
>>> max([list(group) for _, group in groupby(test_list)], key=len)
[4, 4, 4, 4, 4, 4]
如果我们需要最长的连续4
s组- 我们可以按项目过滤
>>> max([list(group) for item, group in groupby(test_list) if item == 4], key=len)
[4, 4, 4, 4, 4, 4]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句