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