首页 > 解决方案 > Python - 迭代嵌套循环

问题描述

首先,我确信以前有人问过这样一个基本的问题,但我找不到关于它的帖子。

我有这段示例数据:

'192.168.244.213': ['8', '4', '3', '1', '6', '5', '3', '2', '6', '5'], 
'192.168.244.214': ['6', '8', '7', '6', '5', '4', '2', '7', '5', '5'], 
'192.168.244.215': ['4', '10', '0', '8', '7', '0', '4', '3', '2', '6'], 
'192.168.244.230': ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']

我想打印出具有列表值的每一行(每一行是一个字典键值对),其列表包含任何数量的非 0 项目(在这种情况下,除了第 4 行之外的每一行)

我似乎无法弄清楚这个看似简单的事情 - 我之前尝试过的是这两件事:

for i in d.keys():
    if "0" not in d[i]:
        print(i, d[i])

这一个只显示不包含 0 AT ALL 的列表 - 所以第三行不会显示,即使它包含非 0 值

for i in d.keys():
    for j in d[i]:
        if j is not "0":
            print(i, d[i])

这个确实向我展示了我想要的东西,但是正如您所知,它过于频繁地打印每个结果 - 每个非 0 的列表值打印一个。

标签: pythonlistdictionaryfor-loop

解决方案


你可以简单地迭代

def all_zero(arr):
    for i in arr:
        if i != 0:
            return False
    else:
        return True

您可以在所有列表中一一调用它。


推荐阅读