gpt4 book ai didi

python - 计算列表中子列表的特定索引中值的实例,但每个列表只计算一次

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:43 24 4
gpt4 key购买 nike

我有类似这样的数据:

[[1, 1, 4]], [[1, 2, 4], [1, 7, 4]], [[2, 2, 4]]

我正在这样迭代:

count = 0
for list in lists:
for sublist in list:
if sublist[2] == 4:
count += 1
print(count)

输出总是以 4 结束。

我想遍历所有 3 个子列表列表,计算“4”在子列表的第三个索引中的时间。但是,在第二个列表中我只希望它计算一次,而不是两次。所以返回的值应该是 3,而不是 4。

最佳答案

如果您发现一个 子列表 在第三个位置有一个 4,您可以简单地通过跳出最内层的循环来修复它。这基本上检查是否有任何 sublist 满足您的条件:

count = 0
for lst in lists:
for sublist in lst:
if sublist[2] == 4:
count += 1
break # just added that line
print(count)
# 3

我还将变量名 list 替换为 lst,否则它会遮盖内置名称 list .

这也可以写成:

>>> sum(any(sublist[2] == 4 for sublist in lst) for lst in lists)
3

或者,如果您想检查所有 sublist 是否满足条件,请将 any 替换为 all:

>>> sum(all(sublist[2] == 4 for sublist in lst) for lst in lists)
3

关于python - 计算列表中子列表的特定索引中值的实例,但每个列表只计算一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45806110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com