Skip to main content
 首页 » 编程设计

python之我可以在数组中不重复地打印值吗

2025年05月04日12mfrbuaa

a = [5,7,3,1,2] 
for i in a: 
    for j in a: 
        if(i==j): 
            continue 
        else: 
            print(i,j) 
    print("") 

输出:

5 7 
5 3 
5 1 
5 2 
 
7 5 
7 3 
7 1 
7 2 
 
3 5 
3 7 
3 1 
3 2 
 
1 5 
1 7 
1 3 
1 2 
 
2 5 
2 7 
2 3 
2 1 

我的代码只显示所有值,但会跳过匹配的值,但如果我不想显示已经打印的值,就像打印值 (5,7) 一样,它不应再次打印为 (7,5 ).一旦值 5 7 被打印出来,那么对于下一次迭代它不应该显示 7 5 并且这应该发生在数组中的所有值上。请有人帮助我。谢谢。如果有重复的问题,请指导我回答那个问题。

请您参考如下方法:

最简单的是使用 itertools.combinations它会为您避免重复:

from itertools import combinations 
a = [5, 7, 3, 1, 2] 
for x, y in combinations(a, 2): 
    print(x, y) 
 
5 7 
5 3 
5 1 
5 2 
7 3 
7 1 
7 2 
3 1 
3 2 
1 2 

如果你想在没有图书馆帮助的情况下完成它,你可以使用 enumerate 执行以下操作和切片:

for i, x in enumerate(a): 
    for y in a[i+1:]:  # combine only with elements after x (index i) 
        print(x, y)