Проблема с перебором списка

Хочу перебрать список и дополнить вывод чисел буквами.

результат должен быть таким

1st  
2nd  
3rd  
4th  
…
items = [range(1, 9)]
for item in items:
    if item == 1:
        print(str(item)+'st')
    elif item == 2:
        print(str(item)+'nd')
    elif item == 3:
        print(str(item)+'rd')
    else:
        print(str(item)+'th')

При запуске программы выводит список целиком и выводит результат огбработки else

результат:

[1, 2, 3, 4, 5, 6, 7, 8, 9]th

может кто подсказать в чем может быть проблема?


Ответы (2 шт):

Автор решения: Андрей Козак

Попробуй [i for i in range(1, 9)]

→ Ссылка
Автор решения: n1tr0xs

Единственная ошибка - неверное заполнение items.
Исправьте items = [range(1, 10)] на items = list(range(1, 10))


Но я бы делал так:

postfix = {
    1: 'st',
    2: 'nd', 
    3: 'rd',
}

for item in range(1, 10):
    print(item, postfix.get(item, 'th'), sep='')

Немного "извращений":

for item in range(1, 10):
    print(item, {1: 'st', 2: 'nd', 3: 'rd'}.get(item, 'th'), sep='')
→ Ссылка