Могу ли я печатать значения без повторений в массиве

1
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, и это должно произойти со всеми значениями в массиве. Пожалуйста, помогите мне. Спасибо. Если есть дублирование вопроса, пожалуйста, наведите меня на этот вопрос.

Показать ещё 2 комментария
Теги:
arrays
for-loop

3 ответа

7
Лучший ответ

itertools.combinations всего использовать 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)
  • 0
    это ожидаемый ответ, большое спасибо
2

Использовать combinations из itertools:

from itertools import combinations
for tup in combinations([5,7,3,1,2],2):
    print(tup[0],tup[1])
5 7
5 3
5 1
5 2
7 3
7 1
7 2
3 1
3 2
1 2
  • 0
    ооо большое спасибо что действительно сработало спасибо за ответ
  • 0
    @ShivamDalvi Рад помочь!
0

Да, ты можешь. Попробуйте следующее:

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

Это даст результат:

5 7
5 3
5 1
5 2

7 3
7 1
7 2

3 1
3 2

1 2
  • 0
    вау спасибо за вашу помощь, она мне очень помогла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню