Сравнение чисел в массиве, попарно Python
Есть код:
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)
i = 0
A = []
for i in input().split():
A.append( int(i) )
b = []
for i in res:
if A[i] not in j and A[i-1] not in j:
B.append(i)
for k in b:
print(k)
Код генерирует список уникальных пар чисел от 1 до 5, т.е. 12 13 14 15 23 24 25 и т.д. после с клавиатуры вводятся пары чисел в том же диапазоне, нужно чтобы введённые пары вычитались из генерируемого массива и составлялся новый массив, с которым в дальнейшем можно будет работать по индексам
то есть мы вводим к примеру 21 и 15 и на выходе получаем тот же генерируемый список но без 12 и 15
На 21 строке выдаёт ошибку list indices must be integers or slices, not str которая появляется и за разного типа данных, но исправить её у меня не вышло
Ответы (1 шт):
Автор решения: A_Vaclav
→ Ссылка
Такой вариант:
res = [f'{x}{y}' for x in range(1, 6) for y in range(1, 6) if x != y]
#print(res)
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)
i = 0
A = []
for i in input('Введите пару цифр из диапозона 1 ... 5 через пробел: ').split(' '):
A.append(i)
print(A)
b = []
for i in range(len(lst)):
#print(i, ' ', type(i))
if (A[0] not in lst[i]) or (A[1] not in lst[i]):
b.append(lst[i])
for k in b:
print(k)