好吧也许我的头衔不是最好的,但这基本上是我的问题: 我有三个看起来像这样的词:
dict1 = {'America': 200, 'Europe': 344, 'Asia': 204, 'Oceania': 38, 'Africa': 14}
dict2 = {'Europe': 394, 'America': 225, 'Asia': 293, 'Oceania': 43, 'Africa': 26}
dict3 = {'Europe': 420, 'America': 250, 'Asia': 363, 'Oceania': 43, 'Africa': 27}
我想要做的是,将字典拆分为三个列表,这些列表根据键值正确“拆分”,如下所示:
list1 = [200, 344, 204, 38, 14]
list2 = [225, 394, 293, 43, 26]
list3 = [250, 420, 363, 43, 27]
编辑:所需的顺序= ['美国','欧洲','亚洲','大洋洲','非洲']
这很容易吗?我尝试了一堆for循环,但无法正确保存顺序。
答案 0 :(得分:1)
Python中有一个内置的词典方法
list1 = dict1.values()
等...
结果
dict_values([200, 344, 204, 38, 14])
此外,您可以使用列表推导
list1 = [x for y,x in dict1.items()]
结果
[200, 344, 204, 38, 14]
答案 1 :(得分:1)
如果键的顺序是任意的,那么你需要在某个迭代中对其进行硬编码。然后,您可以使用列表推导来按所需顺序从键中获取值。
d1 = {'America': 200, 'Europe': 344, 'Asia': 204, 'Oceania': 38, 'Africa': 14}
d2 = {'Europe': 394, 'America': 225, 'Asia': 293, 'Oceania': 43, 'Africa': 26}
d3 = {'Europe': 420, 'America': 250, 'Asia': 363, 'Oceania': 43, 'Africa': 27}
order = ['America', 'Europe', 'Asia', 'Oceania', 'Africa']
list1 = [d1[k] for k in order] # [200, 344, 204, 38, 14]
list2 = [d2[k] for k in order] # [225, 394, 293, 43, 26]
list3 = [d3[k] for k in order] # [250, 420, 363, 43, 27]
答案 2 :(得分:0)
所以我找到了最好的解决方案,感谢@abarnert:
list1 = [count_2016[key] for key in sorted(count_2016)]
list2 = [count_2017[key] for key in sorted(count_2017)]
list3 = [count_2018[key] for key in sorted(count_2018)]
这会为每个列表保留相同的顺序。