如何不使用items()方法正确遍历并显示字典的键与对应值?
问题描述
希望不使用items()方法显示字典的键和对应值,预期输出格式如下:
1 cubed is 1 3 cubed is 27 5 cubed is 125 7 cubed is 343 9 cubed is 729
目前的代码如下:
numbers = [1,3,5,7,9] cubes = {item:item**3 for item in numbers} for key in cubes.keys(): for val in cubes.values(): print(f'{key} cubed is {val}')
请问如何修改代码以实现预期输出?
解决方法
你这段代码的问题在于嵌套了两层循环,这会导致每个键都和所有值逐一配对输出,完全不符合预期。只需要去掉内层循环,通过当前遍历到的键直接从字典中获取对应的值即可:
修改后的代码:
numbers = [1,3,5,7,9] cubes = {item:item**3 for item in numbers} for key in cubes.keys(): print(f'{key} cubed is {cubes[key]}')
补充说明
- 遍历字典的键时,每拿到一个
key,用cubes[key]就能直接获取该键对应的立方值,不需要额外遍历所有值。 - 这样每个键只会和自己对应的输出值配对一次,就能得到你想要的结果。
内容的提问来源于stack exchange,提问作者confused
相关产品推荐
相关产品推荐

