2
respostas

Dictionary

no video 1 da aula 3 do curso Curso Python 2: Programando com a linguagem o professor passa um exemplo relacionando o tipo de convite com o valor do convite, porém na hora que ele imprime o dictionary, eu reparei que o resultado não é mostrado na ordem em que foi cadastrado, alias parece ser uma ordem aleatória, já que não é a ordem de cadastro, não é ordem alfabética, nem ordem de valores

segue exemplo

convites_preco = {'vip ': 100, 'normal' : 60, 'meia' : 30, 'cortesia':0 } convites_preco {'meia' :30, 'vip' : 100, 'cortesia' : 0, 'normal' : 60}

gostaria de saber se existe alguma ordem por tras desta impressão.

2 respostas

Olá Vínicius.

Acabei de fazer uma breve pesquisa, pois sua pergunta me deixou bem curioso.

Basicamente um dicionário Python utiliza uma tabela Hash, de forma arbitrária, o que faz a ordenação ser bem definida e não randômica.

Caso você deseje ordenar seu dicionário é necessário utilizar o OrderedDict

import collections

convitesOrder = collections.OrderedDict(convites_preco )

for c in convitesOrder :
    print(c)

Mais... 8.3.5 OrderedDict objects

Ola Vinicius! Bom o dictionary não possui ordem, pois o mesmo é formado por chave e valor. Uma forma de odernar seu dictionary é usa a função sorted() do python.

segue o link para ajudar: https://wiki.python.org/moin/HowTo/Sorting

Abraços.