2024-03-29 07:26:11 发布
网友
假设我们有两个列表a和b:
a
b
a = [1, 2] b = [3, 4]
是否有一个快速操作将返回元组列表[(1,3), (1,4), (2,3), (2,4)]?你知道吗
[(1,3), (1,4), (2,3), (2,4)]
一个列表可以:
[(i,j) for i in a for j in b]
输出:
>>> a = [1, 2] >>> b = [3, 4] >>> [(i,j) for i in a for j in b] [(1, 3), (1, 4), (2, 3), (2, 4)]
也可以使用^{}:
list(itertools.product(a, b))
如果您有多个列表,或者列表的数量可变,这将非常有用。你知道吗
例如:
>>> import itertools >>> a = [1, 2] >>> b = [3, 4] >>> c = [5, 6] >>> list(itertools.product(a, b, c)) [(1, 3, 5), (1, 3, 6), (1, 4, 5), (1, 4, 6), (2, 3, 5), (2, 3, 6), (2, 4, 5), (2, 4, 6)]
函数^{}将完成以下操作:
In [41]: a, b = [1, 2], [3, 4] In [42]: from itertools import product In [43]: list(product(a, b)) Out[43]: [(1, 3), (1, 4), (2, 3), (2, 4)]
需要指出的是,您需要调用内置函数list(),将product返回的迭代器转换为列表。你知道吗
list()
product
顺便说一句,如果您的目标是计算列表本身的乘积,您可能会发现使用可选的repeat关键字参数很方便:
repeat
In [46]: list(product(a, repeat=3)) Out[46]: [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]
一个列表可以:
输出:
也可以使用^{} :
如果您有多个列表,或者列表的数量可变,这将非常有用。你知道吗
例如:
函数^{} 将完成以下操作:
需要指出的是,您需要调用内置函数
list()
,将product
返回的迭代器转换为列表。你知道吗顺便说一句,如果您的目标是计算列表本身的乘积,您可能会发现使用可选的
repeat
关键字参数很方便:相关问题 更多 >
编程相关推荐