Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que uma lista foi considerada como índice e a outra não?

No exercício:

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'] ] ]

Considere também os seguintes itens:

1) True

2) 'Teto panorâmico'

3) ['Rodas de liga', 'Travas elétricas', 'Piloto automático']

Assinale a alternativa que mostra o código utilizado para selecionar os itens acima:

A resposta correta é:

1) carros[1][3]

2) carros[1][-1][-2]

3) carros[0][-1]

**Minha dúvida se dá no momento em que, eu considero a lista de ['Central multimídia', 'Teto panorâmico', 'Freios ABS'] ] como índice -1, porém, quando eu preciso achar o valor True, eu digo qu ele é localizado pelos índice carros[1][3], ele não deveria ser carros[2][3], porque antes de chegar nessa lista, eu tenho outra abertura de colchetes? Por que eu ignoro a lista ['Rodas de liga', 'Travas elétricas', 'Piloto automático'] ], ?

1 resposta
solução!

Olá Jhonathan, tudo bem? Espero que sim!

Vamos analisar a estrutura da variável carros:

1     carros = [
2         [
3             'Jetta Variant',
4             'Motor 4.0 Turbo',
5             2003,
6             False,
7             ['Rodas de liga', 'Travas elétricas', 'Piloto automático']
8         ],
9         [
10            'Passat',
11            'Motor Diesel',
12            1991,
13            True,
14            ['Central multimídia', 'Teto panorâmico', 'Freios ABS']
15        ]
16    ]

Observamos que há um colchetes de abertura na linha 1 e fechamento na linha 16, indicando que carros é um objeto do tipo lista. O primeiro objeto dentro da lista carros também inicia com um colchetes na linha 2 e tem fechamento na linha 8, indicando que também se trata de uma lista. A vírgula na linha 8 indica que há mais um elemento dentro da lista carros que é uma lista iniciando com colchetes na linha 9 e fechando na linha 15.

Portanto há duas listas dentro do objeto carros, o primeiro é a lista: [ 'Jetta Variant', 'Motor 4.0 Turbo', 2003, False, ['Rodas de liga', 'Travas elétricas', 'Piloto automático'] ] que pode ser acessada através de carros[0] e o segundo elemento é a lista: [ 'Passat', 'Motor Diesel', 1991, True, ['Central multimídia', 'Teto panorâmico', 'Freios ABS'] ] que pode ser acessada através de carros[1].

Veja que o valor True está na lista carros[1], que possui outros 5 objetos e cada um dos objetos dessa lista é:

  • carros[1][0] = 'Passat'
  • carros[1][1] = 'Motor Diesel'
  • carros[1][2] = 1991
  • carros[1][3] = True
  • carros[1][4] = ['Central multimídia', 'Teto panorâmico', 'Freios ABS']

O objeto carros não possui um terceiro objeto, portanto não é possível acessar carros[2], o que resultaria em um erro. Lembre que a indexação em Python começa com o número 0.

A indexação também pode ser feita através de valores negativos, fazendo com que -1 seja o último valor da lista, -2 o penúltimo e assim por diante. Portanto os mesmos dados da lista carros[1] poderia ser acessada da seguinte forma:

  • carros[1][0] = carros[1][-5]= 'Passat'
  • carros[1][1] = carros[1][-4] = 'Motor Diesel'
  • carros[1][2] = carros[1][-3]= 1991
  • carros[1][3] = carros[1][-2]= True
  • carros[1][4] = carros[1][-1] = ['Central multimídia', 'Teto panorâmico', 'Freios ABS']

O último elemento carros[1][4] é o mesmo que carros[1][-1], que também é uma lista. Poranto, podemos utilizar um novo colchetes para acessar os elementos dessa lista. O texto 'Teto panorâmico' é o segundo elemento dessa lista, portanto podemos acessar através de diversas formas, tendo em vista os valores negativos para o acesso invertido:

  • carros[1][4][1] = 'Teto panorâmico'
  • carros[1][-1][1] = 'Teto panorâmico'
  • carros[1][4][-2] = 'Teto panorâmico'
  • carros[1][-1][-2] = 'Teto panorâmico'

Podemos seguir a mesma lógica para a primeira lista carros[0] e encontrar a lista ['Rodas de liga', 'Travas elétricas', 'Piloto automático'] através de carros[0][-1].

Portanto a lista ['Rodas de liga', 'Travas elétricas', 'Piloto automático'] não foi ignorada. Ela está dentro da primeira lista carros[0] e por isso não interfere na indexação inicial da lista carros.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software