3.1.4 Lists

O Python conhece vários tipos de dados compostos, usados para agrupar outros valores. A mais versátil é a lista, que pode ser escrita como uma lista de valores separados por vírgula (itens) entre colchetes. Itens de lista não precisam todos do mesmo tipo.

>>> a = ['spam', 'eggs', 100, 1234]
>>> a
['spam', 'eggs', 100, 1234]

Como os índices de string, os índices de lista começam em 0 e as listas podem ser divididas, concatenadas e assim por diante:

>>> a[0]
'spam'
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['eggs', 100]
>>> a[:2] + ['bacon', 2*2]
['spam', 'eggs', 'bacon', 4]
>>> 3*a[:3] + ['Boo!']
['spam', 'eggs', 100, 'spam', 'eggs', 100, 'spam','eggs', 100, 'Boo!']

Ao contrário das strings, que são imutáveis, é possível alterar elementos individuais de uma lista:

>>> a
['spam', 'eggs', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'eggs', 123, 1234]

A atribuição de pedaços também é possível, e isso pode até alterar o tamanho da lista ou desmarcá-la completamente:

>>> # Replace some items:
... a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # Remove some:
... a[0:2] = []
>>> a
[123, 1234]
>>> # Insert some:
... a[1:1] = ['foo', 'xyzzy']
>>> a
[123, 'foo', 'xyzzy', 1234]
>>> # Insert (a copy of) itself at the beginning
>>> a[:0] = a
>>> a
[123, 'foo', 'xyzzy', 1234, 123, 'foo', 'xyzzy', 1234]
>>> # Clear the list: replace all items with an empty list
>>> a[:] = []
>>> a
[]

A função interna (buind-in) len() também se aplica a listas:

>>> len(a)
8

É possível aninhar listas (criar listas contendo outras listas), por exemplo:

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append('xtra')     # See section 5.1
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']

Note que no último exemplo, p[1] e q realmente se referem ao mesmo objeto! Voltaremos à semântica de objetos mais tarde.

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s