Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Laços for com Tuplas

Olá pessoal, Gostaria de tirar uma dúvida sobre laços for com tuplas, onde o curso possuí um exercicio com o mesmo nome no capitulo 2:

Código:

carros = (
    (
        'Jetta Variant',
        'Motor 4.0 Turbo',
        2003,
        False,
        ('Rodas de liga', 'Travas elétricas', 'Piloto automático')
    ),
    (
        'Passat',
        'Motor Diesel',
        1991,
        True,
        ('Central multimídia', 'Teto panorâmico', 'Freios ABS')
    )
)

Para ter como resultado somente os acessórios: Rodas de liga Travas elétricas Piloto automático Central multimídia Teto panorâmico Freios ABS

Deve-se inserir o seguinte código:

for tupla in carros:
  for item in tupla[-1]:
    print(item)

Gostaria de entender a explicação desse código, visto que no meu entendimento, selecionar [-1] não deveria trazer os acessórios de ambos os carros, e sim somente de um deles.

2 respostas
solução!

Olá, Maurício, tudo beleza?

O que acontece é por conta de ter um laço dentro de outro podemos "acessar" uma das tuplas (que contêm informações do Jetta e do passat) e em seguida acessar o último elemento delas.

Para entender melhor vamos executar isso por partes, sabendo do conteúdo que temos na variável carros , podemos passar o seguinte comando:

for tupla in carros:
    print(tupla)

Saída:

('Jetta Variant', 'Motor 4.0 Turbo', 2003, False, ('Rodas de liga', 'Travas elétricas', 'Piloto automático')) #Resultado da primeira rodada do Loop ('Passat', 'Motor Diesel', 1991, True, ('Central multimídia', 'Teto panorâmico', 'Freios ABS')) #Resultado da segunda rodada do Loop

Bom, sabendo que em cada Loop temos uma tupla, podemos criar um outro laço, onde eu seleciono o último valor, ou seja, nesse caso os acessórios dos carros.

Entao assim podemos criar nosso segundo for, desta forma:

for tupla in carros:
  for item in tupla[-1]: #Se cada item dentro da tupla carros, que eu chamei de "tupla" é uma tupla eu posso acessar o ultimo valor com o tupla[-1] OBS: dentro dessa tupla eu tenho uma outra tupla
    print(item) # Ao final depois de acessar posso imprimir cada item

Saída:

Rodas de liga Travas elétricas Piloto automático Central multimídia Teto panorâmico Freios ABS

Por isso foi exibido os acessórios dos dois carros, pois o primeiro laço percorre a tupla carros e o segundo cada item dentro dessa tupla.

Se ainda tiver alguma dúvida, estou por aqui. Ótimos estudos e um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigado pelo retorno Paulo. esclareceu todas as duvidas.