我有2个相同的列表 a = [a1,a2,a3] b = [a1,a2,a3] 什么是同时迭代这两个列表的最有效方法,而我感兴趣的只是两个列表中不同元素的组合,尽管顺序,即a1a2和a1a3。组合a1a1,a2a2,a3a3,a2a1,a3a1我很有兴趣跳过,但有趣的是保持迭代器值可用。
想要重新提问: 有趣的是列表a = [a1,a2,a3]
中2个元素的可能组合答案 0 :(得分:3)
from itertools import combinations
for i in combinations(['a1','a2','a3'],2):
print i
答案 1 :(得分:0)
列表理解!
li a
修改
如果您认为a = ['1', '2', '3']
b = ['1', '2', '3']
c = [i + j for i in a for j in b if j != i]
print(c) # prints -> ['12', '13', '21', '23', '31', '32']
和a1a2
是重复的,您可以使用一些聪明的切片来跳过它们,如下所示:
a2a1
您可能会注意到,第二个列表中未使用列表c = [ia + ib for i, ia in enumerate(a) for ib in a[i+1:]]
print(c) # prints -> ['12', '13', '23']
。