Índices de listas

Uma questão que abordámos foi o uso de índices para ir buscar elementos às listas. Isto vai dar-nos jeito no caso em que temos duas ou mais listas, e queremos ir buscar valores correspondentes. Por exemplo, vamos criar duas listas:

nomes = ['mar', 'céu', 'vento']
estados = ['bravo', 'nublado', 'forte']

E o que queremos é criar dois objectos de texto, extraídos ao acaso, mas queremos que um corresponda ao outro, nomeadamente: se for escolhida a palavra ‘mar’, o estado tem de ser ‘bravo’, e nunca ‘nublado’, que seria um resultado possível caso usássemos o choice() para extrair um elemento de cada lista.

Para isso, vamos tirar partido dos índices das listas. O índice é o número que indica a posição de um elemento. Neste caso, recordando que o Python conta a partir do zero, ‘mar’ é o elemento 0, ‘céu’ o elemento 1 e ‘vento’ o elemento 2 da lista ‘nomes’. Se quisermos ir directamente buscar o elemento ‘céu’, basta-nos escrever nomes[1].

A estratégia que vamos seguir é primeiro tirar um número ao acaso, e depois usá-lo para ir buscar os elementos correspondentes nas listas. Assim:

nomes = ['mar', 'céu', 'vento']
estados = ['bravo', 'nublado', 'forte']

# o indice vai ser um número à sorte entre 0 e 2, visto que cada lista tem
# 3 elementos

indice = random(0,2)

# para ir buscar o elemento X de uma lista, escrevemos só lista[X].
# por exemplo, para o segundo elemento (posição 1) da lista "numeros",
# é só escrever numeros[1]
# e assim, aplicamos esta lógica para usar um número aleatório como índice
# para ir buscar elementos na mesma posição em cada lista:

text(nomes[indice], 10, 100)
text(estados[indice], 10, 150)

Convém reparar que não usámos de todo o choice() para resolver esta situação.