Я новичок в python, и я действительно не знаю, почему это происходит, поэтому, если вы можете помочь :) Программа должна найти палиндромы из заданного списка ex. 121,23,2,3883 и выдать результат 3883,2,121 но мой вывод выглядит примерно так:
3883
3883,2
3883,2,121
Я толстый, это просто какая-то мелочь, о которой я не знаю. Вот код:
lista=[]
lista = [int(clan) for clan in input("Unesi članove niza : ").split(',')]
lista.reverse()
rezultat=[]
for i in lista:
if i < 0:
i = i * -1
t = i
rev = 0
rev = rev * 10 + t % 10
t = t // 10
i = i * -1
rezultat.append(str(i))
else:
t = i
rev = 0
while t > 0:
rev = rev * 10 + t % 10
t = t // 10
if rev == i:
rezultat.append(str(i))
print(','.join(rezultat))
Для вашей программы ответ состоит в том, чтобы просто сделать отступ последней строки в крайнее левое положение. Вот и все :)
Поскольку вы печатаете его в цикле, просто внесите следующее изменение:
lista=[]
lista = [int(clan) for clan in input("Unesi članove niza : ").split(',')]
lista.reverse()
rezultat=[]
for i in lista:
if i < 0:
i = i * -1
t = i
rev = 0
rev = rev * 10 + t % 10
t = t // 10
i = i * -1
rezultat.append(str(i))
else:
t = i
rev = 0
while t > 0:
rev = rev * 10 + t % 10
t = t // 10
if rev == i:
rezultat.append(str(i))
print(','.join(rezultat))
Вот вам однострочка :)
sample = [121, 23, 2, 3883]
print(sorted(filter(lambda x: str(x) == str(x)[::-1], sample),reverse=True))
Или с пониманием списка: print(','.join(v for v in input_("Unesi članove niza : ").split(',') if v == v[::-1]))
Ага! это тоже нормально :)
попробуй удалить
print(','.join(rezultat))
из блока while
Я думаю, что это должно остановить повторяющиеся результаты
Пожалуйста, не усложняйте, думайте, что это просто :)