我有几个列表,每个列表都有一个字典。我需要遍历元素的每种组合,并将它们相互比较。我想得到这样的东西:
arr1 = [1, 2, 3]
arr2 = ['a', 'b', 'c', 'd']
arr3 = [-1, -2]
for a, b in magic_function(arr1, arr2, arr3, ...): # Probably even more lists!
print(a, b)
# Output:
(1, 'a')
(1, 'b')
(1, 'c')
(1, 'd')
(2, 'a')
(2, 'b')
(2, 'c')
(2, 'd')
(3, 'a')
(3, 'b')
(3, 'c')
(3, 'd')
('a', -1)
('a', -2)
('b', -1)
('b', -2)
('c', -1)
('c', -2)
('d', -1)
('d', -2)
(1, -1)
(1, -2)
(2, -1)
(2, -2)
(3, -1)
(3, -2)
我可以使用什么功能?我找到了itertools.product()
,但这并不是我想要的。我也可以使用numpy。
答案 0 :(得分:2)
import itertools
arrs = [[1, 2, 3], ['a', 'b', 'c', 'd'], [-1, -2]]
for arr1, arr2 in itertools.combinations(arrs, 2):
for p in itertools.product(arr1, arr2):
print(p)