как найти вывод из list1 при реверсе его следует исключить из вывода
пример: 32 reverse — это 23, который уже находится в списке l1, поэтому его следует исключить. Точно так же 98 реверс равен 89, следовательно, вывод должен быть таким, как показано ниже.
l1=[32,48,98,76,23,89]
output as [48,76]
попробовал это
l2=[]
x=[str(x) for x in l1]
print(x)
for var in x:
print(var,var[::-1])
о/п, как показано ниже
32 23
48 84
98 89
76 67
23 32
89 98
если реверс 32 равен 23, то исключите его..
l2=[] x=[str(x) для x в l1] print(x) для var в x: print(var,var[::-1])
Пожалуйста, отредактируйте вопрос и введите код в вопросе и объясните, что не работает в вашем коде.
Что произойдет, если ваш список выглядит так: l1=[32, 48, 98, 76, 48, 23, 23, 89, 89]
все же мой код неверен .. как мы можем это решить?
Вы успешно изменили местами элементы в списке ввода. Теперь все, что вам нужно сделать, это проверить, присутствуют ли перевернутые элементы в списке ввода или нет. Если нет, добавьте эти элементы в выходной список. Попробуй это.
l1=[32,48,98,76,23,89, 470, 74]
l2=[]
x=[str(x) for x in l1]
print(x)
out = []
for var in x:
# print(var,var[::-1])
if int(var[::-1]) not in l1:
out.append(int(var))
print(out) #[48, 76, 74]
Другой подход без приведения типов к строке приведен ниже:
l1=[32,48,98,76,23,89, 470, 74]
out = []
for num in l1:
rev = 0
curr = num
while curr >0:
rev = rev*10+curr%10
curr = curr//10
if rev not in l1:
out.append(num)
print(out) # [48, 76, 74]
Обратите внимание, что оба этих подхода работают только тогда, когда список содержит только целые числа. Также это также будет работать для числа, которое заканчивается на 0. Например: если во входном списке есть 470 и 74, то 470 будет исключено из вывода. В противоположность '470' = '074' и int('074') = 74, поэтому этот элемент будет исключен.
Но исходный список будет целым числом. Итак, вы получите 470
и 74
. Должна ли обратная сторона 470
соответствовать 74
? Если я добавлю 470
и 74
к вашему коду, результатом будет [470, 48, 76, 74]
.
@idjaw это зависит от варианта использования OP. Я думаю, что число, обратное целому числу 470, должно быть целым числом 74. Следовательно, число 470 должно быть исключено из вывода, а число 74 — нет. Как обратное число 74 равно 47. Спасибо, что указали на это. Я обновил свой ответ, чтобы изменить его без приведения типов к строке, что должно работать лучше.
что ты уже испробовал? Пожалуйста, поделитесь своим кодом, чтобы увидеть, где у вас возникли трудности. Вам будет легче помочь найти решение.