Попарное сравнение чисел внутри массива Python
Написал вот это
i = 1;
A = [i for i in range(6)
if i != 0];
print(*A);
i = 1;
B = [i for i in range(6)
if i != 0];
print(*B);
i = 0
l = 0
data = []
value1 = 1
value2 = 1
while i < 5:
for l in range(5):
if A[i] != A[l]:value1 = A[i]
value2 = A[l]
data.append(value1)
data.append(value2)
if l == 4:
i = i + 1
l = 1
list = []
value3 = 0
i = 0
while i < len(data):
if data[i] != data[i-1]:list.append(data[i])
i = i + 1
print(*list)
нужно, чтобы на выходе мы получали список из уникальных пар чисел от 1 до 5, пример: 12 13 14 15 23 24 25 и т.д. пары по типу 11, 22 должны убираться(работает) пары по типу 12 21 считаются идентичными и должна оставаться только одна подобная пара(не работает) через циклы не выходит пытался рекурсией но практика в 7 часов python была против
Ответы (2 шт):
Автор решения: MaxU
→ Ссылка
Если я правильно понял условие задачи - вы можете воспользоваться itertools.combinations:
from itertools import combinations
res = [f"{a}{b}" for a,b in combinations(range(1, 6), 2)]
результат:
In [13]: res
Out[13]: ['12', '13', '14', '15', '23', '24', '25', '34', '35', '45']
PS по указанной ссылке вы можете найти реализацию функции combinations() на Python
Автор решения: Tehnorobot
→ Ссылка
Вот один из простых вариантов решения без доп. библиотек:
res = [f'{x}{y}' for x in range(1, 6) for y in range(1, 6) if x != y]
lst = []
for i in res:
if i not in lst and i[::-1] not in lst: # проверка на уникальность в списке, в котором учитываются палиндромы
lst.append(i)
for j in lst:
print(j)