Loading



Curso de Programação em Python Lição 5- Lista,Tupla,Dicionario

Bem vindos á quinta aula do curso de programação em Python.

Este artigo faz parte do curso de programação em Python do INFOmoz. Para acessar outras aulas do curso, por favor visite o índice do curso de programação em Python . Comentários e dúvidas relacionados á esta aula poderão ser deixados na secção de comentários deste texto

Objectivos da quinta aula do curso de programação em Python

  • Conceito de sequências(arrays)
  • Tipos de sequencias em Python
  • Acesso a dados de sequencias

Sequências (Arrays) em Python

Em programação, muitas vezes torna-se necessário agrupar variáveis ou dados do mesmo tipo. Por exemplo, se quisermos fazer um programa para gerir uma turma, temos que criar variáveis para armazenar cada nome dos alunos da turma, depois outras variáveis para cada nota de cada aluno. Mas isso pode ser simplificado usando sequências. Sequências também facilitam muito no acesso á dados por meio de Strings, como veremos mais adiante.

Já havia dito nas aulas anteriores que String é uma sequência de caracteres, agora vamos ver outros tipos de sequências em Python:

Lista

Uma das mais importantes sequências em Python é a lista.

A sintaxe da lista é:

lista=[dado1,dado2,dado3,....]

Exemplo:

lista=[“Elisio”,18,”Estudante”]

Nesta altura do campeonato ainda preciso te lembrar de abrir o IDLE para ir experimentando os exemplos? Espero que não!!!

 

Note que diferentemente dos arrays de outras linguagens de programação, as listas em Python podem conter dados de qualquer tipo, mesmo uma mistura de tipos, até pode conter outras listas,veja os exemplos:

>>>lista1=[“Eu”,”Tu”,”Ele”]
>>>lista2=[10,11,12]
>>>lista3=[15,”sim”,”nao”]
>>>lista=[lista1,lista2,lista3]
>>>lista (veja a saida)

Para acessar “a dados de uma lista usa-se o mesmo princípio que para Strings, sendo assim:

lista1[1]
“tu”
>>>lista[1]
[10,11,12] # imprime a lista 2 que é o objecto que está na posição 1 da lista
>>>lista[1][2]
12

Aqui, você ja deve ter imaginado como trabalhar com Matrizes em Python né? Ainda não? Não se preoucupe teremos exemplos mais adiante.

 

Tal como no caso de Strings, em Python também usamos o operador + para indcar concatenação:

lista1+lista2
[“Eu”,”Tu”,”Ele”,10,11,12]

Mas só podemos concatenar listas com listas,o exemplo a seguir dará um erro porque não é possivel concatenar lista com um inteiro:

lista+2
Traceback (most recent call last):
File “”, line 1, in
lista+2
 TypeError: can only concatenate list (not “int”) to list

Não se preoucupe em decifrar essas mensagens agora, tal como disse, veremos na próxima aula.

 

Também podemos acessar os dados da lista na ordem inversa. O último elemento é [-1], o penultimo [-2] e assim por diante.

A função “len” que vimos em Strings também é válida para listas e devolve o seu tamanho:

len(lista1)
3

Ao contrário de Strings, podemos alterar o valor em uma determinada posição da lista:

>>>lista1[2]=”ninguem”
>>>lista1[1]=2
>>>lista[1]=lista[0]
(Verificar os resultados)

E podemos também aumentar o seu tamanho com a função append:

>>>lista1.append(2)
>>>lista1
(verificar o resultado)

Ou ainda diminuir com a função remove:

>>>lista.remove(valor) #remove o valor indicado da lista, se não existir retorna uma mensagem de erro.
>>>lista.remove(lista[posição]) #remove o valor na posição indicada.

Experimente essas funções com as listas anteriores.

Tuplas em Python

As tuplas são sequências como listas, mas com uma diferença, as tuplas são imutaveis como Strings. A sua sintaxe é:

tupla=(dado1,dado2,...)

Note que aqui são parenteses curvos e não rectos como listas

 

Com as tuplas podemos fazer o chamado “Packing-Unpacking” que é muito comun em programas Python:

nome,idade=”Elisio”,18

Ou ainda trocar valores de variaveis facilmente:

a,b=b,a

Quem já programou em outras linguagens já pode notar o quanto Python é simples.

 

Dicionários em Python

Os dicionários não são sequencias, porque não são indexados sequêncialmente como listas ou Strings, mas através de chaves. A sua sintaxe é:

dicionario={chave1:dado1,chave2:dado2,....}

Exemplo:

>>>aluno={‘nome’:’Elisio’,’idade’:18,’profissao’:’Estudante’}
>>>aluno
(verificar o resultado)

Para adicionar um dado á um dicionario é só fazer:

aluno[‘classificacao’]=’aprovado’
aluno
(verificar o resultado)

Asssim criamos um dado aprovado, cuja chave é classificação

 

Para obter um valor de uma chave:

>>>aluno[‘idade’]
 18

Podemos também alterar o valor de uma chave, assim:

>>>aluno[‘classificacao’]=’reprovado’

As funções disponiveis para dicionario são:

>>>dicionario.keys() # retorna todas as chaves do dicionario
>>>dicionario.has_key(chave) #retorna true se o dicionário possuir a chave indicada e false caso contrário.
>>>dicionario.items() #retorna o par chave/item.

Experimente esssas funções com alguns dicionários enquanto vamos para a lição 6, onde falaremos de erros, excepções.

 

E se te dizer que daqui a duas aulas farás programas completos e alguns games?

Comentários relacionados á esta aula poderão ser deixados na secção de comentários deste artigo

Nos vemos na sexta aula do curso de programação em Python

Tabela de Conteúdos

Artigos Relacionados:

  1. Curso de programação em Python Lição 4-Trabalhando com Strings
  2. Curso de programação em Python Lição 1 – Instalação e configuração do Python no Windows
  3. curso de programação em Python Lição 2-O primeiro programa
  • Pingback: Curso de programação em Python Lição 4-Trabalhando com Strings « Informática Moçambique

  • Carlos Fagiani Junior

    Curti muito as dicas…

    Como se pode saber a posição em que um item se encontra na lista?

    nome = ['Aletéia', 'Beth', 'Carlos', 'Claudette']

    qual comando usar para saber que o Carlos se encontra na posição ’2′ (contando o zero) da lista??

    Agradeço pelas dicas…

    [Reply]

  • http://moz-blogs.com/members/admin/ Elisio Leonardo

    @Carlos
    Aló Carlos, obrigado pelo comentário, bom saber que gostou da aula.

    Para saber que o Carlos está na posição 2, você pode usar a função index() numa lista.
    Para o seu caso específico, você poderia fazer nome.index(“Carlos”), que o programa retornaria 2.

    Experimente ai, e qualquer coisa é só dar sinal….
    Abraços

    [Reply]

  • Carlos Fagiani Junior

    Isso mesmo… é o index() mesmo, eu já tinha achado lá no serviço…

    Mas mesmo assim muito obrigado por tuas aulas aqui…
    Eu achei muito fácil e gostoso de aprender a linguagem python, ainda mais aprendendo algumas coisas nas tuas aulas….
    vlw

    [Reply]

  • Pingback: Python Imaging Library: Usando a classe Image « Informática Moçambique

  • ivo

    olá pessoal td bem?
    catchupa

    [Reply]

    Elisio Leonardo Reply:

    Tudo bem, Ivo… Estou iniciando um novo curso agora aqui no INFOmoz, de PHP, WordPress e CakePHP

    [Reply]

  • Pingback: Curso de programação em Python Lição 4-Trabalhando com Strings | Informática Moçambique

  • Pingback: Mais sobre funções – Curso de programação em Python Lição 11 | Informática Moçambique

  • Alexandre

    A função has_keys simplesmente não funciona. Dá uma olhada no resultado:

    >>> dicionario={“nome”:”alexandre”,”idade”:25}
    >>> dicionario.has_keys(“nome”)

    Traceback (most recent call last):
    File “”, line 1, in
    dicionario.has_keys(“nome”)
    AttributeError: ‘dict’ object has no attribute ‘has_keys’

    O que eu fiz de errado?

    [Reply]

    Elisio Leonardo Reply:

    Oi Alexandre. Provavelmente você está usando o Python 3.x, que já alterou esta função. Em vez de usar dicionario.has_key(“nome”), você deverá fazer como na linha abaixo:

    “nome” in dicionario

    Assim a função retorna true.

    [Reply]

  • Rafael

    “Como saber a posição que um item se encontra na lista?”

    Eita cara só aqui eu encontrei a resposta.
    Brigadão

    [Reply]

    Elisio Leonardo Reply:

    de nada :-)

    [Reply]

  • Andréia

    Oi, pode dar uma idéia de como eu adiciono um elemento na lista a cada iteração? Se eu tiver n iterações, terei como resultado uma lista com n elementos. Tentei a função append, mas dessa forma o elemento da iteração anterior é excluído da lista, e a lista final tem somente 1 elemento…

    [Reply]

    Elisio Leonardo Reply:

    Ola Andreia,
    Pode colar aquii o codigo que voce esta usando para a iteração?

    Porque o append comigo não da problemas!
    Cumprimentos

    [Reply]

  • Alicecarol

    oi como faço usando dicionarios para remover um item, mostrar esse item removido e mostrar a lista atualizada.
    Por favor me ajudem

    [Reply]

|Downloads: 1| Login - Copyright © 2007 - 2012 INFOmoz.net| Desenvolvido por Elisio Leonardo