python循环遍历2个列表,跳过相似的元素

时间:2016-09-26 11:07:05

标签: python list loops

我有2个相同的列表 a = [a1,a2,a3] b = [a1,a2,a3] 什么是同时迭代这两个列表的最有效方法,而我感兴趣的只是两个列表中不同元素的组合,尽管顺序,即a1a2和a1a3。组合a1a1,a2a2,a3a3,a2a1,a3a1我很有兴趣跳过,但有趣的是保持迭代器值可用。

想要重新提问: 有趣的是列表a = [a1,a2,a3]

中2个元素的可能组合

2 个答案:

答案 0 :(得分:3)

Use combinations

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']

相关问题