在单表达式python 3.7中,将字典值中的列表组合到元组列表中

在单表达式python 3.7中,将字典值中的列表组合到元组列表中,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有一本字典如下: myDict = {'a' : [[1,2], [3,4]], 'b':[[5,6],[7,8]]} [(1,2),(3,4),(5,6),(7,8)] 根据上述词典,我想构建一个元组列表,如下所示: 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(

我有一本字典如下:

  myDict = {'a' : [[1,2], [3,4]], 'b':[[5,6],[7,8]]}
  [(1,2),(3,4),(5,6),(7,8)]
根据上述词典,我想构建一个元组列表,如下所示:

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

此外,您还可以使用列表理解:

[tuple(e) for e in flatten(myDict.values())]
输出:

[(1, 2), (3, 4), (5, 6), (7, 8)]
您可以使用:

list(map(tuple, (e for l in myDict.values() for e in l)))
您可以使用以下方法展平
myDict.values()

此外,您还可以使用列表理解:

[tuple(e) for e in flatten(myDict.values())]
输出:

[(1, 2), (3, 4), (5, 6), (7, 8)]
你可以试试

你可以试试


[myDict中v的tuple(i)表示v.values()表示v中i]
[myDict中v的tuple(i)表示v中v.values()表示i]
?python版本>=3.6的顺序是有保证的,他使用的是python 3.7,python版本>=3.6的顺序是有保证的,他使用的是python 3.7