Python字典循环异常:为何始终打印Cell_num_8而非目标键?
问题分析与解决
你的代码问题出在只遍历了字典的值,却没有关联对应的键,而且keys变量根本没在循环里定义——你看到的Cell_num_8大概率是环境中残留的变量值,本质上这个写法完全不符合需求。
要实现遍历字典、打印值为"NaN"的键,你需要遍历字典的键值对,同时获取键和对应的值:
修正后的代码
Admin = { "Cell_num_1": "NaN", "Cell_num_2": 987654321, "Cell_num_3": "NaN", "Cell_num_4": 123456789, "Cell_num_5": "NaN", "Cell_num_6": 987654321, "Cell_num_7": "NaN", "Cell_num_8": 123456789, } # 遍历字典的键值对,同时拿到键(key)和值(value) for key, value in Admin.items(): if value == "NaN": print(key)
为什么原代码不对?
for values in Admin.values()只会逐个取出字典里的值,完全没涉及键的信息,你打印的keys是未在当前循环中定义的变量,它的值和当前遍历毫无关系。- 使用
Admin.items()可以同时获取每个键值对的键和值,这样判断值符合条件时,就能直接打印对应的键,得到你预期的Cell_num_1、Cell_num_3、Cell_num_5、Cell_num_7。
内容的提问来源于stack exchange,提问作者Shahar D
相关产品推荐
相关产品推荐

