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.
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).