Обновление: начиная с Python 3.7, порядок вставки поддерживается, поэтому вам здесь не нужно OrderedDict. Вы можете использовать следующие подходы с нормальнымdict
Изменено в версии 3.7: Порядок словаря гарантированно является порядком вставки. Это поведение было деталью реализации CPython из 3.6.
источник
Python 3.6 и более ранние *
Если вы говорите о обычном dict, то «первый ключ» ничего не значит. Ключи не упорядочены так, как вы можете зависеть. Если вы перебираете свои, dictвы, скорее всего, не получите "banana"первое, что увидите.
Если вам нужно держать все в порядке, тогда вы должны использовать OrderedDictне просто словарь, а просто.
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
Если вы хотите увидеть все ключи по порядку, вы можете сделать это, перебирая их
for k in prices:
print(k)
Вы можете, в качестве альтернативы, поместить все ключи в список, а затем работать с этим
ks = list(prices)
print(ks[0]) # will print "banana"
Более быстрый способ получить первый элемент без создания списка - вызвать nextитератор. Это не обобщает при попытке получить nthэлемент, хотя
>>> next(iter(prices))
'banana'
* CPython имел гарантированный порядок вставки в качестве детали реализации в 3.6.