Python最后打印出带后缀的整数

时间:2018-10-23 20:33:42

标签: python python-3.x list

例如:

我有一个list = ['0','1','2','3','4']

说我要打印“第一个元素为0”或“第三个元素为2”。本质上,如何在数字末尾添加st或nd或th?

第一,第二,第三等

我认为使用逐个案例或if-elif-else可能会太多。还有其他方法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用字典来避免使用if-elif-else,例如:

7

输出

def ordinal(i):
    sig_digits = i % 100
    suffixes = {1: 'st', 2: 'nd', 3: 'rd'}
    suffix = 'th' if 3 < sig_digits < 21 else suffixes.get(sig_digits % 10, 'th')
    return str(i) + suffix


lst = ['0', '1', '2', '3', '4']

for i, e in enumerate(lst, 1):
    print('The {} element is {}'.format(ordinal(i), e))

The 1st element is 0 The 2nd element is 1 The 3rd element is 2 The 4th element is 3 The 5th element is 4 函数等效于:

ordinal