d = {'nome' : 'igor', 'idade' : 18, 'curso' : 'python' }
Os dicionarios guardam pares de chave/valor, no caso acima, as chaves sao: 'nome', 'idade' e 'curso'... e elas se referem a seus respectivos valores: 'igor', 18, 'python'.
É importante lembrar que as posições dos pares chave/valor não tem ordem fixa. Os valores podem ser de qualquer tipo, strings, inteiros, tuplas.
Acima criamos o dicionario 'd' da maneira mais clássica, mas existem outras, como a função 'dict':
>>> items = [('nome','igor'), ('idade', 18), ('curso','python')]
>>> d = dict(items)
>>> d
{'idade': 18, 'curso': 'python', 'nome': 'igor'}
Outra maneira interessante de se criar um dicionario, é usando o método 'fromkeys'
>>> dic = {}.fromkeys(['nome','idade'])
{'idade': None, 'nome': None}
Ao invés de None, podemos dar o valor padrão
>>> dic = {}.fromkeys(['nome','idade'],'NADA')
>>> dic
{'idade': 'NADA', 'nome': 'NADA'}
Agora vamos ao que mais interessa, manusear o dicionário...
>>> d['nome']
'igor'
Tem um pequeno problema, e se essa chave nao existisse?
>>> d
{'idade': 18, 'curso': 'python', 'nome': 'igor'}
>>> d['profissao']
Traceback (most recent call last):
File "
KeyError: 'profissao'
Pra evitar esse tipo de bug, existe o metodo 'get'
>>> d
{'idade': 18, 'curso': 'python', 'nome': 'igor'}
>>> d.get('nome')
'igor'
>>> print d.get('profissao')
None
Pra alterar o valor de uma chave é muito simples
>>> d['nome']
'igor'
>>> d['nome'] = 'sobreira'
>>> d['nome']
'sobreira'
Observe que eu substitui o valor da chave 'nome', e caso ela ainda não existisse, eu teria acabado de criá-la. Mas que tal verificar se determinada chave existe mesmo?
>>> 'nome' in d
True
>>> 'profissao' in d
False
>>> d.has_key('nome')
True
Pra apagar uma chave também é batante simples:
>>> d
{'curso': 'python', 'nome': 'igor', 'idade': 18}
>>> del d['nome']
>>> d
{'idade': 18, 'curso': 'python'}
Caso você queira ver o que está apagando, ao invés do 'del', pode usar o 'pop'
>>> d
{'idade': 18, 'curso': 'python'}
>>> d.pop('curso')
'python'
Mas eu não quero apagar so uma chave, quero limpar todo o dicionario. Pra isso tem o 'clear'
>>> d = {'nome': 'igor', 'curso': 'python'}
>>> d.clear()
>>> d
{}
Também podemos copiar todo o conteudo do dicionario, para um outro dicionario
>>> d = {'nome': 'igor', 'curso': 'python'}
>>> d2 = d.copy()
>>> d2
{'curso': 'python', 'nome': 'igor'}
>>> d2['curso'] = 'dicionarios'
>>> d2
{'curso': 'dicionarios', 'nome': 'igor'}
>>> d
{'curso': 'python', 'nome': 'igor'}
Observe que uma alteração em um, não altera o conteudo do dicionario copiado
Existe uma utilidade muito legal dos dicioanários, que é formatar string. Aqui vai um exemplo muito interessante
>>> dic = {'nome': 'igor', 'curso': 'python'}
>>> frase = 'meu nome e %(nome)s e estou estudando %(curso)s'
>>> print frase % dic
meu nome e igor e estou estudando python
Bem, espero ter esclarecido um pouco o uso de dicionarios.
Tomei como base o livro Begining Pyhton - From Novice to Professional, de Magnus Lie Hetland
Até a próxima...
2 comentários:
Gostaria de saber como copiar apenas parte de um dicionário para outro.
Suas dicas me ajudaram a resolver uma questão legal, pegar tags populares do delicious
sudo su -
easy_install -z http://pydelicious.googlecode.com/files/pydelicious%2Btools-0.5.3.zip
>> import pydelicious
>>> populares = pydelicious.get_popular(tag="python")
>>> print "\n".join([ x.get('url') for x in populares ])
Postar um comentário