Python словарь ключей быстрого доступа - PullRequest
0 голосов
/ 19 апреля 2020

у меня есть словарь -

myDictry = {}
myDictry[4] = 88
myDictry[14] = 7
myDictry[5] = 102
myDictry[49] = 3

мне нужно получить второй по величине ключ этого словаря. так что - в приведенном выше случае, я должен получить доступ к ключу 14 и go оттуда.

в настоящее время это делается как -

list(myDictry.keys())[-2]

это лучший способ - есть ли более "Pythoni c" способ сделать это?

это Python сортировка dict.keys каждый раз, когда я звоню myDictry.keys() или сохранение их сортированной (мое предположение)?

как насчет того, когда я звоню max(myDictry)?

еще не настолько старый в Python. Извините, если слишком наивный.

ОБНОВЛЕНИЕ

добавлял ключи в порядке возрастания - не очень осторожно с этим. получил мой ответ. спасибо авторам.

1 Ответ

0 голосов
/ 19 апреля 2020

Попытки с использованием list.sort() и sorted(), а также добавление проверок для проверки наличия более одного элемента в списке.

Использование list.sort ()

my_dict = {}
my_dict[4] = 88
my_dict[14] = 7
my_dict[5] = 102
my_dict[49] = 3

key_list = list(my_dict.keys())
key_list.sort()  # In-place sorting of list
if len(key_list) > 1:
    print(key_list[-2])

Используя вывод sorted()

key_list = sorted(my_dict.keys())  # It sorts iterable of **similar** types
if len(key_list) > 1:
    print(key_list[-2])

:

14
...