Olá, Lyse! Tudo tranquilo por aí?
Essa divergência está acontecendo porque a variável lista não é uma lista de números, e sim uma lista de listas. Para deixar mais claro vamos olhar o código por partes, tá bem?
lista = [[] for i in range(3)]
print(lista)
Saída:
[[], [], []]
Quando você executa essa primeira linha de código, a saída que você obtém é uma lista que contém três listas vazias dentro.
lista[0].append(3)
lista[1].append(5)
lista[2].append(7)
print(lista)
Saída:
[[3], [5], [7]]
Nesse trecho de código acima, o que está sendo feito é inserindo os elementos 3, 5 e 7 naquelas listas vazias criadas anteriormente. A variável lista possui 3 listas, [3] na posiçãolista[0]
, [5] na posição lista[1]
e [7] na posição lista[2]
.
Quando você faz: 3 in lista, vai ser retornado False pois está sendo perguntado se o número 3 está em lista, mas na verdade há uma lista que possui o elemento 3 ([3]).
Quando você faz: [3] in lista está sendo perguntado se há uma lista com o elemento 3 dentro de lista, o que é exatamente o caso ([[3], [5], [7]]).
Só um exemplo com listas de mais de um elemento:
teste = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([1, 2, 3] in teste)
Saída:
True
A saída será True pois a lista teste possui a lista [1, 2, 3] como elemento.
Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.
:)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!