Python 3使用while循环输出字典键值对时出现报错的问题求助
问题分析与解决方案
嘿,我一眼就瞅出问题所在啦!咱们来拆解一下:
错误原因
你定义的字典dictionary,它的键是'A'、'B'、'C'、'D'这些字符串,而你在循环里用dictionary[q]访问时,q是0、1、2、3这类数字——字典里根本没有数字类型的键,自然会抛出KeyError报错。
为啥单独打印klucze[q]没问题?因为klucze是把字典的键转换成了列表,列表是靠数字索引访问的,所以klucze[q]能正确拿到对应的键字符串。
修复方案
给你两种简单的修复方式:
方式1:用列表中的键访问字典
既然klucze[q]能拿到字典的键,那直接用这个键去取字典的值就好:
dictionary={'A':'80%-100%','B':'60%-80%','C':'50-60%','D':'less then 50%'} klucze=list(dictionary.keys()) q=0 while q<4: print(klucze[q], " - ", dictionary[klucze[q]]) # 这里改成用klucze[q]作为键 q+=1
方式2:更简洁的遍历方式(推荐)
其实没必要手动维护索引q,直接遍历字典的键值对效率更高,代码也更清爽:
dictionary={'A':'80%-100%','B':'60%-80%','C':'50-60%','D':'less then 50%'} for key, value in dictionary.items(): print(f"{key} - {value}")
这样运行就能得到你想要的输出啦~
内容的提问来源于stack exchange,提问作者Grzegorz Michalski
相关产品推荐
相关产品推荐

