【问题标题】:How to retrieve lists of keys and values of a dictionary through a list comprehension?如何通过列表理解检索字典的键和值列表?
【发布时间】:2019-03-09 17:00:58
【问题描述】:

这是一个 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.x dictionary list-comprehension


    【解决方案1】:
    b, c = map(list, zip(*a.items()))
    print(b)
    print(c)
    

    这个输出:

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

    【讨论】:

    • 这是唯一的解决方案还是也可以通过列表理解来实现?
    • 您也可以简单地执行以下操作:b = list(a.keys())c = list(a.values()),但我真的看不出有任何方法可以通过列表理解以有意义的方式做到这一点。
    猜你喜欢
    • 2019-09-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2020-08-06
    • 2022-11-10
    • 2020-09-30
    相关资源
    最近更新 更多