Se um mídito
não estiver vazio, eu acesso a um elemento arbitrário como:
mydict[mydict.keys()[0]]
Há melhor maneira de fazer isto?
Em Python 3, de forma não destrutiva e iterativa:
next(iter(mydict.values()))
Em Python 2, de forma não destrutiva e iterativa:
mydict.itervalues().next()
Se você quiser que funcione tanto no Python 2 como no 3, você pode utilizar o pacote six
:
six.next(six.itervalues(mydict))
embora neste ponto seja bastante críptico e I'prefira o seu código.
Se você quiser remover qualquer item, faça:
key, value = mydict.popitem()
Note que "first" não é um termo apropriado aqui. Este é "any" item, porque dict
não é um tipo ordenado.
Como outros mencionados, não há "primeiro item" uma vez que os dicionários não têm ordem garantida (eles're implementados como tabelas de hash). Se você quiser, por exemplo, o valor correspondente à menor chave, thedict[min(thedict)]
irá fazer isso. Se você se importa com a ordem na qual as chaves foram inseridas, isto é, por "first" você quer dizer "inserido mais cedo" então em Python 3.1 você pode usar collections.OrderedDict, que também está no próximo Python 2.7; para versões antigas do Python, baixe, instale, e use o backport ordenado (2.4 e posterior) que você pode encontrar aqui.
**Píton 3.7*** Agora os pictos estão ordenados por inserção.
Ignorando os problemas em torno da ordem de ditar, isto pode ser melhor:
next(dict.itervalues())
Desta forma evitamos a procura de itens e geramos uma lista de chaves que não usamos't.
next(iter(dict.values()))