首页 > 解决方案 > 如何通过列表理解检索字典的键和值列表?

问题描述

这是一个 MWE,它显示了我想要获得的内容,但使用了 for 循环:

a = {'a':1, 'b':2, 'c':3, 'd':4}
b = []
c = []
for key, value in a.items():
  b.append(key)
  c.append(value)

print(b) # ['a', 'b', 'c', 'd']
print(c) # [1, 2, 3, 4]

我想使用列表理解在一行中获得相同的结果。 b,c = [(key, value) for key, value in a.items()]导致解包错误,因为它分别将 a 的第一项和第二项分配给 b 和 c,然后它不知道在哪里解包其他项。b,c = [key, value for key, value in a.items()]再次导致错误,语法错误。

标签: python-3.xdictionarylist-comprehension

解决方案


b, c = map(list, zip(*a.items()))
print(b)
print(c)

这输出:

['a', 'b', 'c', 'd']
[1, 2, 3, 4]

推荐阅读