我们有两个列表,A和B:
有没有一种Pythonic的方式来构建包含$2^n$(这里是$2^3=8$)个映射的从A到B的所有映射集?也就是说:
使用`itertools.product`,可以获取所有的元组:
A = ['a','b','c']
B = [1, 2]
有没有一种Pythonic的方式来构建包含$2^n$(这里是$2^3=8$)个映射的从A到B的所有映射集?也就是说:
[(a,1), (b,1), (c,1)]
[(a,1), (b,1), (c,2)]
[(a,1), (b,2), (c,1)]
[(a,1), (b,2), (c,2)]
[(a,2), (b,1), (c,1)]
[(a,2), (b,1), (c,2)]
[(a,2), (b,2), (c,1)]
[(a,2), (b,2), (c,2)]
使用`itertools.product`,可以获取所有的元组:
import itertools as it
P = it.product(A, B)
[p for p in P]
这将会得到:
Out[3]: [('a', 1), ('a', 2), ('b', 1), ('b', 2), ('c', 1), ('c', 2)]