Вы можете продиктовать {}
, чтобы сохранить значение, которое будет использоваться для сравнения, а затем отсортировать и взять второе.
Вот код, немного более общий для получения nth
элемент:
# List comprehension
def nth_largest(values: {}, nth=0):
return [k for k,v in sorted(values.items(), key=lambda kv:kv[1], reverse=True)][nth][0]
# Two steps
def nth_largest(values: {}, nth=0):
sorted_x = sorted(values.items(), key=lambda kv: kv[1], reverse=True)
return list(sorted_x)[nth][0]
if __name__ == '__main__':
list_input_amount = int(input('How many items are in your list?: '))
dico_values = {}
for amount in range(list_input_amount):
list_input = input('Please enter your list item: ')
if list_input.isnumeric():
dico_values[int(list_input)] = int(list_input)
else:
dico_values[list_input] = len(list_input)
print(nth_largest(dico_values, 1))