首页 > 解决方案 > 将字典值中的列表列表组合到单个表达式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))

我可以使用单个表达式做同样的事情吗?

标签: pythonpython-3.xdictionary

解决方案


您可以使用:

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)]

推荐阅读