Python - 列表列表的理解

  • 本文关键字:列表 Python python list
  • 更新时间 :
  • 英文 :


我有一个列表列表,并希望生成一个列表列表,其中包含每个列表中的一个元素。

例如,给定列表[[1, 2], [3, 4], [5, 6], [7, 8],我将执行以下代码[(i, j, k, h) for i in [1, 2] for j in [3, 4] for k in [5, 6] for h in [7, 8]]并获取作为输出

[(1, 3, 5, 7), (1, 3, 5, 8), (1, 3, 6, 7), (1, 3, 6, 8), (1, 4, 5, 7), (1, 4, 5, 8), (1, 4, 6, 7), (1, 4, 6, 8), (2, 3, 5, 7), (2, 3, 5, 8), (2, 3, 6, 7), (2, 3, 6, 8), (2, 4, 5, 7), (2, 4, 5, 8), (2, 4, 6, 7), (2, 4, 6, 8)]

此代码不适用于具有不同子列表数的列表列表。有没有办法使用嵌套列表推导来达到预期的结果?(我的子列表并不总是具有相同的长度)。

使用 itertools.product ,并在作为参数传递时解压缩列表:

In [40]: from itertools import product
In [41]: list(product(*[[1, 2], [3, 4], [5, 6], [7, 8]]))
Out[41]: 
[(1, 3, 5, 7),
 (1, 3, 5, 8),
 (1, 3, 6, 7),
 (1, 3, 6, 8),
 (1, 4, 5, 7),
 (1, 4, 5, 8),
 (1, 4, 6, 7),
 (1, 4, 6, 8),
 (2, 3, 5, 7),
 (2, 3, 5, 8),
 (2, 3, 6, 7),
 (2, 3, 6, 8),
 (2, 4, 5, 7),
 (2, 4, 5, 8),
 (2, 4, 6, 7),
 (2, 4, 6, 8)]

相关内容

  • 没有找到相关文章

最新更新