Ver Feed RSS

root@blog:/# chmod o+r *

[Curso de Python] Introdução à Tuplas e Lístas

Avalie este Post de Blog

Antes de prosseguir leia os artigos anteriores aqui




Vamos abordar rapidamente dois tipos de dados em Python que eu considero como fundamental a compreensão: Tuplas e Listas

Tuplas



As tuplas são agrupamentos imutáveis de objetos heterogêneos (de qualquer tipo). Ao dizer imutável me refiro à característica de que a tupla, uma vez criada, não pode ser alterada, isto é, não é possível adicionar, remover alterar seus itens.

Isso parece ser uma desvantagem, mas na verdade ela foi elaborada dessa forma para “ocupar menos espaço”. Uma vez que ela é imutável é necessário menos bits para criá-la. Se seu programa realmente necessitar de um agrupamento que irá variar ao longo do tempo, utilize as listas.



Criando uma tupla

A forma mais comum de se criar uma tupla é utilizar os parênteses como delimitador e separar seus itens por vírgula:
Código :
 >>> (1, 2, 3, 4)  # Exemplo de tupla
(1, 2, 3, 4)
Existem outra forma de se “declarar” uma tupla:
Código :
 >>> 1, 2, 3, 4  # Exemplo de tupla
(1, 2, 3, 4)
Se os parênteses forem omitidos o Python irá entender que isso se trata de um tupla. Se precisarmos criar uma tupla de um único item, temos um comportamento um pouco diferente:
Código :
 >>> (1) # Isso é uma tupla?
1
>>> (1,) # Isso é uma tupla!!!
(1,)
>>>
Porque isso ocorre? Ao escrever somente (1) o python não tem como garantir que isso é uma tupla. O Python na verdade entende isso como um número inteiro entre parêntesis (operação matemática).

A tupla pode armazenar qualquer coisa:
Código :
 >>> ('este', 'e', 'um', 'teste')  # Tupla com strings
('este', 'e', 'um', 'teste')
>>> (1.25, 5.5, 0.75)  # Tupla com floats
(1.25, 5.5, 0.75)
>>> ((1,2), (2,3), (3,4))  # Tupla com tuplas
((1, 2), (2, 3), (3, 4))
>>>
Mas isso não é tudo!! Como eu disse, seus itens podem ser heterogêneos:
Código :
 >>> ('string', 1, (2,4), 4.75)  # Vamos misturar tudo!
('string', 1, (2, 4), 4.75)
>>>
Operações com Tuplas

Existem algumas operações que podemos fazer com as tuplas.
Código :
 >>> (1, 2) + (3, 4)  # Expansão de tuplas
(1, 2, 3, 4)
>>> (1, 2) * 3  # Repetição
(1, 2, 1, 2, 1, 2)
Antes que alguém diga que eu alterei a tupla com os sinais de + e * e que elas não são imutáveis, eu quero ressaltar que no caso da soma eu tenho duas tuplas, as duas são combinadas para gerar uma terceira, nenhuma foi alterada. Isso vai ficar mais claro quando começarmos a ver variáveis.




Listas



As listas são similares às tuplas, mas com a diferença de que são mutáveis, isto é, podemos alterá-la. Para declarar uma lista utilizamos colchetes:
Código :
 >>> [1, 2, 3, 4]  # Lista simples
[1, 2, 3, 4]
>>> [1] # Lista de um único ítem. Não é necessária a vírgula
[1]
>>> ['string', 12, 5.75, (2, 3), ['teste', (4, 'string?!')]]  # Tudo misturado
['string', 12, 5.75, (2, 3), ['teste', (4, 'string?!')]]
>>> [1, 2] + [3, 4]
[1, 2, 3, 4]
>>> [1, 2] * 3
[1, 2, 1, 2, 1, 2]
>>>
Como podem ver as listas e tuplas se assemelham muito. Atenção para a terceira lista que eu criei. Os itens dela foram:

  • Uma string;
  • Um número inteiro;
  • Um número com ponto flutuante;
  • Uma tupla composta de 2 itens e;
  • Uma lista composta de 2 itens.


Esse é o básico de tuplas e listas. Olhando assim parece que é um conteúdo limitado, mas eu estou me limitando ao básico do básico. Mais para frente quando começarmos a ver variáveis, condicionais, controladores de fluxo, funções e métodos esse conteúdo (listas, tuplas e strings) se tornará muito mais extenso e eu vou retornar à eles de maneira recorrente.

Por hoje é só! Semana que vem veremos dicionários!
Até mais....

Atualizado 01-09-2010 em 09:07 por Magnun

Categorias
Python , Artigos , Artigos , Cursos , Curso de Python

Comentários

Página 1 de 2 12 ÚltimoÚltimo
  1. Avatar de ilsahec
    Mais uma vez presente... rs
    A iniciativa é muito boa
  2. Avatar de PEdroArthurJEdi
    E ae Magnum,

    Estou um pouco sumido mas sempre dou umas olhadas nas atualizações. PArabéns pelos artigos, está ficando um boa referência sobre Python.

    Abraço...
  3. Avatar de Magnun
    Obrigado pelos elogios (ilsahec e PEdroArthurJEdi).

    O ilsahec como sempre é o primeiro a comentar! Obrigado por acompanhar com tanto afinco!

    Pedro, espero conseguir azer uma referência e tanto sobre Python. Meu objetivo é ir do básico ao mais avançado incluindo utilização de repositórios Bazaar, organização do projeto, design de projetos com OO, interface gráfica com pyGTK, ferramentas para instalação dos aplicativos desenvolvidos, empacotamento e distribuição.

    Minha idéia é (um pouco mais pra frente) criar um projeto e à medida que explico um conteúdo vou implementando o projeto. Ainda não sei ao certo o que vai ser...

    Até mais...
  4. Avatar de juniorphy
    Voltei, estava em uma correria, provas da faculdade, etc e tall, mas voltei a acompanhar .... Parei um domingão para ler tudo o que você tinha postado, parabéns Magnum ... estarei aguardando novos artigos ...

    Sucesso!!
  5. Avatar de Magnun
    Valeu juniorphy, com tanta gente animada assim agente podia formar um grupo de desenvolvimento aqui na Under e criar um projeto... Vai que agente cria um novo "google" da vida XD...
  6. Avatar de kakinho
    Magnun:
    Antes que alguém dia
    ...

    Num seria
    Antes que alguém diga...?

    *só tentando ajudar no enriquecimento e mostrando que tow atento mesmo ao material, hehehe, valeu magnun.
  7. Avatar de Magnun
    E ai kakinho, tá em todas hein?!

    Valeu pelo puxão de orelha, já corrigi! Fico feliz por você estar prestando atenção! Se tiver dúvidas posta ai que eu ajudo! Obrigado...
  8. Avatar de fabiocs
    Muito bom, obrigado...
  9. Avatar de wapistos
    Presente profesor

    >>> """ Tah ficando cada vez mais "sussa"
    ... Acho que 'funcionaria'
    ... """

    Vlw mano
  10. Avatar de Humildade
    Muito bacana!

    Estou iniciando meus estudos em python também.
    Quero poder criar um sistema para meu uso pessoal rs, tomara que consiga.

    Show de bola Mister Magnun!

    Abs
Página 1 de 2 12 ÚltimoÚltimo

+ Enviar Comentário