Atualização: a partir do Python 3.7, a ordem de inserção é mantida, portanto você não precisa de um OrderedDict
aqui. Você pode usar as abordagens abaixo com umdict
Alterado na versão 3.7: A ordem do dicionário é garantida como ordem de inserção. Esse comportamento foi um detalhe de implementação do CPython da 3.6.
fonte
Python 3.6 e versões anteriores *
Se você está falando de um regular dict
, então a "primeira chave" não significa nada. As chaves não são ordenadas de nenhuma maneira em que você possa confiar. Se você iterar sobre o seu dict
, provavelmente não será "banana"
a primeira coisa que verá.
Se você precisar manter as coisas em ordem, precisará usar um OrderedDict
e não apenas um dicionário comum.
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
Se você queria ver todas as chaves em ordem, poderia fazê-lo iterando através dela
for k in prices:
print(k)
Você pode, alternativamente, colocar todas as chaves em uma lista e depois trabalhar com isso.
ks = list(prices)
print(ks[0]) # will print "banana"
Uma maneira mais rápida de obter o primeiro elemento sem criar uma lista seria chamar next
o iterador. Isso não generaliza muito bem ao tentar obter o nth
elemento
>>> next(iter(prices))
'banana'
* O CPython garantiu a ordem de inserção como um detalhe de implementação em 3.6.