python - 将字典值中的列表列表组合到单个表达式python 3.7中的元组列表中
问题描述
我有一本字典如下:
myDict = {'a' : [[1,2], [3,4]], 'b':[[5,6],[7,8]]}
从上面的字典中,我想构造一个元组列表,如下所示:
[(1,2),(3,4),(5,6),(7,8)]
我可以通过以下代码实现这一点:
l=[]
for _, v in myDict.items():
for i in v:
l.append(tuple(i))
我可以使用单个表达式做同样的事情吗?
解决方案
您可以使用:
list(map(tuple, (e for l in myDict.values() for e in l)))
您可以myDict.values()
使用more_itertools.flatten进行展平:
from more_itertools import flatten
list(map(tuple, flatten(myDict.values())))
此外,您可以使用列表推导:
[tuple(e) for e in flatten(myDict.values())]
输出:
[(1, 2), (3, 4), (5, 6), (7, 8)]
推荐阅读
- c# - 如何验证已使用 jquery 填充数据的下拉列表
- javascript - Angular4应用程序中的HTML转义拦截器
- android - 经典蓝牙发现没有提供除 MAC 地址以外的详细信息
- javascript - 如何使用 reduce() 从 javascript 中的嵌套数据中提取信息?(ES6)
- sql-server - 在java和数据库中自动生成具有特定格式的主键
- marklogic - MLCP 使用文档选择器导出所选文档
- postgresql - psql select * from user 返回系统用户而不是表内容
- mysql - System.AggregateException:Xamarin 发生一个或多个错误
- kubernetes - 从外部访问特定的 pod
- css - 如何将所有菜单项与徽标内联?