【问题标题】:Split list of dict to list of keys, list of values将dict列表拆分为键列表、值列表
【发布时间】:2019-04-06 17:27:14
【问题描述】:

考虑以下listdict

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

我怎样才能将键和值分开为lists

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

【问题讨论】:

  • 为什么有字典列表?字典已经是项目的集合,所以如果你有它肯定会更容易。

标签: python-3.x list dictionary key


【解决方案1】:
keys = food.keys()
values = food.values()

编辑:

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

所以keys[0] 可能不代表values[0] 的价格。如果您想保持两个列表之间的顺序一致,那么您将不得不这样做

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

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

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

您最好将其存储为 food = {“披萨”: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)]

【讨论】:

  • 食物没有物品
  • 你能说得更具体一点吗?这是您遇到的错误吗?
  • @Vendant Shetty 是的,这就是我得到的错误。对不起,我的评论令人困惑
  • 我知道那里发生了什么。您有一个字典项目列表。正如克里斯蒂安已经指出的那样,这有点不必要,但无论如何,我会更新答案以处理字典项目列表
  • @Vedanet Shetty,好的,谢谢。我特别喜欢你的第二个答案,这更像是我想要的。
猜你喜欢
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-10-10
  • 2018-05-26
  • 2021-02-12
  • 1970-01-01
  • 2021-10-05
相关资源
最近更新 更多