Программирование python. Помогите написать программу
Нужно написать программу используя списочное выражение, чтобы вывести все числа палиндромов от 100 до 1000.
(Достаточно проверить на условие равенства первого и последнего числа в трёхзначных числах)
Я так понимаю чтобы выявить число палиндром нужно условие i[0] == i[-1]
Написал код, но он не работает:
s = [i for i in range(100, 1001) if i[0] == i[-1]]
Подскажите ошибку, или может по другому нужно решить, но обязательно используя списочное выражение
Если уж делать так, как тебе пришло в голову, то
s = [i for i in range(100, 1000) if list(str(i))[0] == list(str(i))[-1]]
print (s)
s = [i for i in range(100, 1001) if str(i) == str(i)[::-1]] # переворачивает число и сравнивает его с исходным
или
s = [i for i in range(100, 1001) if str(i)[0] == str(i)[-1]] # сравнивает первую и последнюю цифра, если одна и та же цифра, значит палиндром
Вы извлекаете 0 индекс из числа. Зачем?
Переворот делается так [::-1]. И чтобы такое осуществить с числом, его нужно перевести в строку. Но вот зачем вы извлекали из числа 0 индекс мне непонятно...
palindromes = [i for i in range(100, 1001) if i % 10 == i // 100]
print(palindromes)