如何使用子元组从元组创建列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用子元组从元组创建列表?相关的知识,希望对你有一定的参考价值。

我有两个名单ab。然后我创建所有组合,采用a的所有两长度组合加上b各一个:

import itertools as it

a = [1,2,3,4]
b = [5,6]

for i in it.product(it.combinations(a, 2), b):
    print (i)

# output:
  ((1, 2), 5)
  ((1, 2), 6)
  ((1, 3), 5)
  ...

# expected output:
  [1, 2, 5]
  [1, 2, 6]
  [1, 3, 5]
  ...

如何在循环操作阶段将元组转换为列表?

答案

以下理解将起作用:

>>> [[*x, y] for x, y in it.product(it.combinations(a, 2), b)]  # Py3
>>> [list(x) + [y] for x, y in it.product(it.combinations(a, 2), b)]  # all Py versions
[[1, 2, 5],
 [1, 2, 6],
 [1, 3, 5],
 [1, 3, 6],
 [1, 4, 5],
 [1, 4, 6],
 [2, 3, 5],
 [2, 3, 6],
 [2, 4, 5],
 [2, 4, 6],
 [3, 4, 5],
 [3, 4, 6]]
另一答案

简化方法:

a = [1,2,3,4]
b = [5,6]
l = len(a)
print(sorted([a[i], a[i_n], j] for i in range(l) for j in b
             for i_n in range(i+1, l) if i < l-1))

输出:

[[1, 2, 5], [1, 2, 6], [1, 3, 5], [1, 3, 6], [1, 4, 5], [1, 4, 6], [2, 3, 5], [2, 3, 6], [2, 4, 5], [2, 4, 6], [3, 4, 5], [3, 4, 6]]

以上是关于如何使用子元组从元组创建列表?的主要内容,如果未能解决你的问题,请参考以下文章

从元组的元组中创建一个列表

使用min函数从元组列表中获取多个元组

如何有条件地从元组列表中删除元素?

从元组python 3列表中只获取整数

从元组列表中返回具有最小 y 值的元组

如何从元组数组创建字典?