将字典列表拆分为键列表,值列表

时间:2018-11-02 12:59:35

标签: python-3.x list dictionary key

请考虑以下list中的dict

food = [{'pizza': 324}, {'sandwich': 78}, {'hot dog': 90}]

我该如何将键和值分成lists

[pizza, sandwich, hot dog]
[324,78,90]

1 个答案:

答案 0 :(得分:4)

keys = food.keys()
values = food.values()

编辑:

我意识到以这种方式分割字典不会保持键和值之间的顺序,因为字典没有顺序。

因此键[0]可能不代表值[0]的价格。如果要使两个列表之间的顺序保持一致,则必须这样做

for key,values in food.items():
    keylist.append(key)
    valuelist.append(values)

edit2: 尽管以上方法将从字典中检索键和值。您将数据存储在多个列表项中,其中每个项都是一个字典。

如@cristian所指出的那样,这是不必要的,因为字典可以容纳多个项目。

最好将其存储为 食物= {“比萨”:324,“三明治”:78,“热狗”:90}

但是无论如何,您都可以通过

来检索数据
keys = []
values = []
for item in food:
    keys.append(item.keys())
    values.append(item.values())

可以简化为

keys = [*(x.keys() for d in food)]
values = [*(x.values() for x in food)]