Python遍历字典生成列表仅获取键,如何得到初始化的变量值列表
问题原因
直接遍历字典时,默认迭代的对象是字典的键,因此你写入列表的都是weight的整数键,而非对应的取值。
解决方案
方案1:修改遍历逻辑,直接取字典值
调用字典的values()方法,即可直接迭代所有取值:
weight = {} weight[0] = 16 weight[1] = 4 weight[2] = 12 weight[3] = 5 weight[4] = 9 weight[5] = 2 my_list = [] for val in weight.values(): my_list.append(val) print(my_list)
方案2:简化写法,直接转换为列表
可以直接用list()将字典的值视图转换为列表,不需要手动写循环:
my_list = list(weight.values()) print(my_list)
补充:保证顺序的兼容写法
Python 3.7及以上版本字典默认保留插入顺序,上述两种写法都能得到你要的输出结果。如果使用更早的Python版本,需要按键排序后再取值,保证输出顺序和你定义的顺序一致:
my_list = [val for key, val in sorted(weight.items())] print(my_list)
以上三种写法最终输出均为:[16, 4, 12, 5, 9, 2]
内容的提问来源于stack exchange,提问作者pepsnscotch
相关产品推荐
相关产品推荐

