Oii Wallace, tudo bem?
Quando você executa o loop for
para iterar sobre a lista restaurantes
, cada restaurante
que você acessa dentro do loop é, na verdade, uma referência direta ao objeto correspondente dentro da lista restaurantes
. Isso significa que, quando você altera o valor da chave 'ativo' de restaurante
, você está alterando diretamente o objeto na lista restaurantes
. Não é uma cópia ou uma "instância" separada, mas sim o próprio objeto na lista.
Então, quando você consulta a lista de restaurantes após a alteração, você observa que o valor da chave 'ativo' foi modificado porque você alterou o objeto original na lista. Isso acontece porque listas e dicionários em Python são tipos mutáveis, o que significa que eles podem ser alterados após sua criação.
Resumindo, o dicionário restaurantes
contém os objetos, e quando você itera sobre ele com um loop for
, você obtém referências diretas a esses objetos, permitindo que você modifique seus estados diretamente.
Um abraço e bons estudos.