例如:
我有一个list = ['0','1','2','3','4']
说我要打印“第一个元素为0”或“第三个元素为2”。本质上,如何在数字末尾添加st或nd或th?
第一,第二,第三等
我认为使用逐个案例或if-elif-else可能会太多。还有其他方法吗?
谢谢
答案 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