我需要在Python中知道如何计算列表中数字的数量,例如:
l = [0,1,2,5,6,5,0,0,0]
如果区域是3:
三个数字区域中的最大零个数为3(末尾)
(必须这样计数:0; 1; 2:一个零,1; 2; 5没有零,2; 5; 6没有零...)
(此练习的目标是在数字列表中由int(input())确定的区域中打印最大数量的零)
谢谢您的帮助!
这是我学校的作业,在数学上,我们用Python进行练习
答案 0 :(得分:1)
尝试一下:
L = [0,1,2,5,6,5,0,0,0]
print([x.count(0) for x in zip(L,L[1:],L[2:])])
作为更通用的解决方案,对于可变值和可变区域大小,可以使用以下方法:
def getCount(arr,val,zone):
z = [arr[n:] for n in range(zone)]
return [x.count(val) for x in zip(*z)]
然后,您可以执行以下操作:
countArr = getCount(arr=[0,1,2,5,6,5,0,0,0],val=0,zone=3)
print(countArr)
print(max(countArr))
答案 1 :(得分:0)
您有一个名为l
的列表,您必须取消清除区域,它可能会更改。
另外,如果您要搜索除search_number
之外的其他变量,我还添加了0
变量
l = [0,1,2,5,6,5,0,0,0]
zone = 3
search_number = 0
现在,您应该将列表分为几类
clusterlist = []
for index in range(l.__len__()):
clusterlist.append(l[index:zone+index])
您拥有群集列表,例如0,1,2
,1,2,5
。 max_cluster_have_zeros
将保存群集中最大零个计数。 save_cluster
将存储包含最大零的群集。
save_cluster = None
max_cluster_have_zeros = 0
for cluster in clusterlist:
cluster_have_zeros = cluster.count(search_number)
if (max_cluster_have_zeros < cluster_have_zeros):
max_cluster_have_zeros = cluster_have_zeros
save_cluster = cluster