python-3.x - 如何通过列表理解检索字典的键和值列表?
问题描述
这是一个 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()]
再次导致错误,语法错误。
解决方案
b, c = map(list, zip(*a.items()))
print(b)
print(c)
这输出:
['a', 'b', 'c', 'd']
[1, 2, 3, 4]
推荐阅读
- javascript - 是否有带有每天复选框的月历的 HTML 代码?
- amazon-web-services - 如何授予 EFS 挂载目标对本地 DataSync 代理的访问权限?
- c++ - C++中的队列实现模板返回类型函数
- android - 使用变量作为名称 strings.xml
- webpack - Webpack -p 与 --mode=production
- sql-server - React 应用程序 - 无法连接到 SQL Server 数据库
- apache-kafka - 如果集群中有一个节点宕机,Zookeeper 将无法正常工作
- html - 侧边栏是否可以在 html 页面上的 div 之后启动
- php - 通过电子邮件发送时单选按钮无法正常工作
- reactjs - 将滚动条添加到反应提及中的提及列表