Уведомления

Группа в Telegram: @pythonsu

#1 Март 8, 2021 17:27:57

Arthorius
Зарегистрирован: 2021-02-26
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как обратиться к ключу в словаре по его порядковому номеру

Всем привет!
Подскажите пожалуйста, если есть словарь
dic = {'we': 8, 'qw: 15}
Могу ли я взять ключ из этого словаря, обращаясь к ключу не по имени, а по его порядковому номеру?
Ну например, чтоб вывести значение первого ключа, то сделать это как-то так:
print(dic.keys(1)), или print(dic[1}), или ещё как-то…

Офлайн

#2 Март 8, 2021 17:48:40

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1372
Репутация: +  121  -
Профиль   Отправить e-mail  

Как обратиться к ключу в словаре по его порядковому номеру

 dic = {'we': 8, 'qw': 15}
dic_keys = list(dic)
print(dic_keys)
print(dic_keys[0])
print(dic[dic_keys[0]])

 ['we', 'qw']
we
8
Process finished with exit code 

Офлайн

#3 Март 8, 2021 18:31:17

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Как обратиться к ключу в словаре по его порядковому номеру

Arthorius
обращаясь к ключу не по имени, а по его порядковому номеру?
У словаря нет индексов ключей. И я бы сказал что это плохой тон полагаться на порядок ключей в словаре.
Конечно можно както их пронумеровать, но трудоемкость этой операции будет линейная, а извлечение по ключу имеет константную трудоемкость.
Arthorius
Ну например, чтоб вывести значение первого ключа
Трудоемкость вот именно такой операции константная, правда с учетом что этот ключик условно первый :).
 a={10-i:i for i in range(5)}
a.__iter__().__next__()
10



Отредактировано doza_and (Март 8, 2021 18:32:17)

Офлайн

#4 Март 9, 2021 09:40:35

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как обратиться к ключу в словаре по его порядковому номеру

Arthorius у ключа нет порядкового номера, еще недавно словари вообще были неупорядочеными, тоесть порядок извлечения ключей мог отличаться от порядка добавления.
С версии 3.6 они стали упорядочеными, а с 3.7 это стало стандартом. Так что вопрос какой ключ первый до версии 3.6 вообще лишен смысла (для этого использовался collections.OrderedDict),
с Версии 3.6 вы можете использовать метод предложеный xam1816



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 9, 2021 09:40:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version