Я получаю более одного вывода в python 3.x

Я новичок в 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))

Пожалуйста, не усложняйте, думайте, что это просто :)

Nanthakumar J J 23.12.2020 09:40

Для вашей программы ответ состоит в том, чтобы просто сделать отступ последней строки в крайнее левое положение. Вот и все :)

Nanthakumar J J 23.12.2020 09:42
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
61
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Поскольку вы печатаете его в цикле, просто внесите следующее изменение:

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]))

Matthias 23.12.2020 10:39

Ага! это тоже нормально :)

Nanthakumar J J 23.12.2020 10:40

попробуй удалить print(','.join(rezultat)) из блока while

Я думаю, что это должно остановить повторяющиеся результаты

Другие вопросы по теме