Здесь он использует словари как функцию или как лямбду ...
Если вы посмотрите на словари в обратном направлении, вы можете прочитать их как ...
Все заканчивается на 'th'
... если оно не заканчивается на 1, 2 или 3, то заканчивается на 'st', 'nd' или 'rd'
... если только он не заканчивается в 11, 12 или 13, тогда он заканчивается в 'th,' th 'или' th '
# as a function
def ordinal(num):
return '%d%s' % (num, { 11: 'th', 12: 'th', 13: 'th' }.get(num % 100, { 1: 'st',2: 'nd',3: 'rd',}.get(num % 10, 'th')))
# as a lambda
ordinal = lambda num : '%d%s' % (num, { 11: 'th', 12: 'th', 13: 'th' }.get(num % 100, { 1: 'st',2: 'nd',3: 'rd',}.get(num % 10, 'th')))