Quando utilizar Lista, Dicionário ou Tupla

1,503 views
Skip to first unread message

faguanil

unread,
Dec 1, 2011, 7:55:50 AM12/1/11
to python-brasil
Bom dia pessoal, em python temos as estruturas de dados Lista,
Dicionário e Tupla, porém quando utilizar cada uma delas.Lista eu já
utilizo, uma estrutura muito parecida com nossos "Vetores". Teria como
darem um exemplo bem prático de quando utilizar Lista, Dicionário e
Tuplas.

Obrigado.

Marcel Caraciolo

unread,
Dec 1, 2011, 8:00:04 AM12/1/11
to python...@googlegroups.com
Bons Links para discussão:



Att.

Marcel


2011/12/1 faguanil <fagu...@gmail.com>

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
Marcel Pinheiro Caraciolo
M.S.C. Candidate at CIN/UFPE

Nicolas Coelho

unread,
Dec 1, 2011, 8:05:05 AM12/1/11
to python...@googlegroups.com
O certo eu não sei, mas uso assim:
Listas para agrupar poucos itens, onde é interessante ter
mobilidade(poder adicionar/remover itens facilmente)
Dicionarios para guardar MUITA coisa, onde o principal é velocidade.
E tuplas, eu não lembro de ter usado. :(


--
Nicolas Coelho

"Do what you think is interesting, do something that you think is fun
and worthwhile, because otherwise you won't do it well anyway." -
Brian Kernighan

Marcel Caraciolo

unread,
Dec 1, 2011, 8:40:55 AM12/1/11
to python...@googlegroups.com
Olá Nicolas e Faguanil,

Apesar de as tuplas serem imutáveis, isto é, são listas constantes, ou seja uma vez que você criou a estrutura de dados você não pode mais modificar a estrutura onde esta sendo referenciada. Então:

t = (2,3)
t [0] = 4

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Isto tem benefícios especialmente em questão de desempenho até porque pelo fato de as tuplas serem constantes você não terá funções de atribuição por exemplo como em lista deixando elas bem mais eficientes.

Sobre outro ponto de vista em questão de uso é que as tuplas são estrutura de dados heterogêneas  e as listas são homogêneas. Como assim ?

Considere tuplas onde armazenam a página e o número da linha para referenciar partes de um livro:

location = (42, 11) # numero da pagina, numero da linha


Você pode esta estrutura como uma chave de um dicionário e por exemplo guardar anotações de um livro por meio destas referências. Uma lista por outro lado é bem menos recomendado para este  tipo de estrutura que precisa armazenar vários locais.  Uma vez que a lista é mutável, faria sentido você poder alterar por exemplo o número da página ou até o número da linha, podendo causar problemas no seu programa em questão de lógica. Com o uso de tuplas você teria isto constante sempre mantendo ela fixa (tamanho e elementos).

Bons artigos para estudo:

 "Python Tuples are Not Just Constant Lists" 

"Understanding tuples vs. lists in Python".


Att.

Marcel

2011/12/1 Nicolas Coelho <nic...@nicolas.eti.br>
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com

Cassio

unread,
Dec 1, 2011, 9:01:06 AM12/1/11
to python...@googlegroups.com
Listas são conjunto de elementos mutáveis.

Tuplas são como listas porém imutáveis.Isto aumenta desempenho.

Dicionário são utilizados quando agrupamos um conjunto de chave e valor.Lembrando que a chave deve ser imutável.

Listas são indexadas por numeros inteiros e Dicionarios são mapeados de acordo com chave.

Isto é o básico.Para detalhes das funções de cada item crie um iitem e digite dir(elemento) e help(elemento.duvida).
Espero que ajude.

[ ]'s

Fernando Macedo

unread,
Dec 2, 2011, 11:01:39 AM12/2/11
to python...@googlegroups.com
O Bruno Rocha postou um vídeo [1] bem legal no vimeo, explicando Set, Listas, Filter, Dict e outros recursos. 

Ele também cita exemplos de uso.


Abs,
Fernando
Reply all
Reply to author
Forward
0 new messages