嘿,我想将列表中的每个值相互比较,并且我不希望同一值进行两次比较,例如,ab = ba,而'a'不需要与'a'本身进行比较< / p>
list = [a,b,c,d,e]
输出:
#### not necessarily in this format
ab bc cd
ac bd ce
ad be
ae
答案 0 :(得分:3)
为此,您可以使用itertools.combinations
from itertools import combinations
for i in combinations([1,2,3,4], 2):
print(i)
此打印:
(1, 2)
(1, 3)
(1, 4)
(2, 3)
(2, 4)
(3, 4)
答案 1 :(得分:0)
您可以在另一个内部创建2个循环,其中内部循环始终从外部循环当前具有的下一个索引开始
l = [1, 2, 3, 4]
outer_index = 0
while(outer_index < len(l)):
inner_index = outer_index+1
while(inner_index < len(l)):
print(str(l[outer_index]) + ", " + str(l[inner_index]))
inner_index = inner_index+1
outer_index = outer_index+1
答案 2 :(得分:0)
不确定我是否理解您的问题。 这是我的方法,不使用库,仅使用简单的代码:
a=1
b=2
c=3
d=4
e=5
list = [a,b,c,d,e]
for index, i in enumerate(list):
list2=list[index+1:]
for j in list2:
print i, j
输出:
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
您可以使用函数而不是'print'来比较变量
可以肯定的是,可以对代码进行优化(更多pythonic),但这是一种方法