📜  Python - 计算 N 个连续批次中 K 的最大连续数

📅  最后修改于: 2022-05-13 01:55:15.556000             🧑  作者: Mango

Python - 计算 N 个连续批次中 K 的最大连续数

给定一个列表,任务是编写一个Python程序来计算在每个大小为 N 的批次中连续出现 K 的最大次数。

例子:

方法:使用groupby() + max() +列表理解+ 切片

在这种情况下,我们使用切片获得每个连续,并使用范围跳转 K 个元素以开始对每个批次进行分组。 max() 获取每批中 K 个连续组的最大长度。

Python3
# Python3 code to demonstrate working of
# Maximum consecution of K in N consecutive batches
# Using groupby() + max() + list comprehension + slicing
from itertools import groupby
 
# initializing list
test_list = [4, 4, 5, 4, 4, 4, 1, 2, 3, 4, 4, 4, 4, 4, 4,
             4, 5, 6, 7, 4, 4, 5, 3, 4, 4, 4, 7, 4, 4, 4,
             5, 6, 3, 5, 4, 4, 4, 6, 4, 4, 1, 4, 2, 4, 4]
              
# printing original list
print("The original list is : " + str(test_list))
 
# initializing N
N = 15
 
# initializing K
K = 4
 
# max() getting max. consecution of K, ranges being evaluated using slices
# and skips using range()
res = [max(len(list(group)) for ele, group in groupby(sub) if ele == K)
          for sub in (test_list[idx : idx + N]
          for idx in range(0, len(test_list), N))]
 
# printing result
print("Maximum consecution of K for each batch : " + str(res))


输出: