Subsecções


2.3.2 Listas

A lista é uma seqüência: um conjunto linear (como um vetor em outras linguagens) de valores indexados por um número inteiro. Os índices são iniciados em zero e atribuídos seqüencialmente a partir deste. A lista pode conter quaisquer valores, incluindo valores de tipos mistos, e até outras listas. Para criar uma lista, usamos colchetes e vírgulas para enumerar os valores:

    >>> numeros = [1, 2, 3]
    >>> opcoes  = ["nao", "sim", "talvez"]
    >>> modelos = [3.1, 3.11, 95, 98, 2000, "Millenium", "XP"]
    >>> listas  = [numeros, opcoes]

Neste exemplo criamos quatro listas diferentes, com elementos de tipos diversos. A quarta lista tem como elementos outras listas: em outras palavras, é uma lista de listas:

    >>> print listas
    [[1, 2, 3], ['nao', 'sim', 'talvez']]

Para acessar um elemento específico de uma lista, usamos o nome da lista seguido do índice entre colchetes:

    >>> print numeros[0]
    1
    >>> print opcoes[2]
    talvez
    >>> print modelos[4]
    2000

Usando índices negativos, as posições são acessadas a partir do final da lista, -1 indicando o último elemento:

    >>> print numeros[-1]
    3
    >>> print modelos[-2]
    Millenium

Python oferece um mecanismo para criar `fatias' de uma lista, ou slices. Um slice é uma lista gerada a partir de um fragmento de outra lista. O fragmento é especificado com dois índices, separados por dois pontos; o slice resultante contém os elementos cujas posições vão do primeiro índice ao segundo, não incluindo o último elemento. Se omitirmos um dos índices no slice, assume-se início ou fim da lista.

    >>> print numeros[:2]
    [1, 2]
    >>> print opcoes[1:]
    ['sim', 'talvez']
    >>> print modelos[1:5] 
    [3.1000000000000001, 95, 98, 2000]

Note que o terceiro exemplo demonstra a mesma particularidade referente à representação de números de ponto flutuante, descrita na seção 2.3.1: ao imprimir a lista, Python exibe a representação interna dos seus elementos, e portanto, floats são impressos com precisão completa.


2.3.2.1 Métodos da Lista

Na seção 1.1.5 introduzimos um conceito central da linguagem: `tudo é um objeto´; uma lista em Python, sendo um objeto, possui um conjunto de operações próprias que manipulam seu conteúdo. O nome método é usado para descrever operações de um objeto; métodos são acessados no código-fonte digitando-se um ponto após o nome da variável, e a seguir o nome do método.

Para executar (ou chamar) um método, usamos parênteses após seu nome, fornecendo argumentos conforme necessário. Abaixo são exemplificados dois exemplos de chamadas de métodos em listas:

    >>> numeros.append(0)
    >>> print numeros
    [1, 2, 3, 0]
    >>> numeros.sort()
    >>> print numeros
    [0, 1, 2, 3]

Observe com atenção este exemplo, que demonstra os conceitos fundamentais descritos nos parágrafos anteriores:

A lista possui uma série de outros métodos; consulte a referência Python para uma descrição completa (e veja também a função dir() na seção 4.4).