Analise o código Python a seguir. x1 = {"A", "B", "C"} x2 = ["AA", "BB", "CC"] x1.add("B") x2.append("BB") x2.append(x1) print (x2) Dado que os elementos de x1 podem ser exibidos em ordem aleatória, a linha que possivelmente é produzida pelo comando print na execução do código acima é:
- A)['AA', 'BB', 'CC', 'BB', {'C', 'A', 'B'}]
Certa: mostra a lista com o conjunto x1 como um unico elemento ao final, e a ordem interna do conjunto pode variar.
- B)['AA', 'BB', 'CC', 'BB', 'C', 'A', 'B', 'B']
Errada: trata o append como se inserisse os elementos de x1 separadamente, o que nao acontece.
- C)['AA', 'BB', 'CC', 'BB', 'C', 'A', 'B']
Errada: repete o mesmo erro de espalhar o conjunto dentro da lista, em vez de adiciona-lo como um unico item.
- D)['AA', 'BB', 'CC', ['BB'], {'B'}]
Errada: mistura estruturas de forma incoerente e nao corresponde ao resultado real das operacoes feitas.
- E){'AA', 'BB', 'CC', 'BB', 'C', 'A', 'B'}
Errada: o print de x2 produz uma lista, nao um conjunto, e conjuntos nao mantem essa forma de exibicao.
Gabarito: A
Aqui a ideia central eh diferenciar lista e conjunto em Python. A lista, como x2, aceita repeticao e preserva a ordem de insercao. Ja o conjunto, como x1, nao admite elementos duplicados e nao garante ordem fixa de exibicao. Por isso, quando voce faz x1.add("B"), nada muda de fato, porque "B" ja estava no conjunto. E quando faz x2.append("BB"), a lista recebe mais um "BB", ficando com repeticao mesmo. O ponto mais importante vem na ultima linha: x2.append(x1). Isso nao cola os elementos de x1 dentro de x2 um a um. Em vez disso, a lista passa a conter o proprio objeto conjunto como um elemento interno. Ou seja, x2 vira algo como ['AA', 'BB', 'CC', 'BB', { ... }]. Como os elementos de x1 podem aparecer em ordem aleatoria, qualquer ordem interna de {'A', 'B', 'C'} poderia ocorrer na exibicao. A alternativa A traz exatamente essa ideia: a lista com os quatro primeiros itens e, ao final, o conjunto x1 aparecendo como um unico elemento. As outras alternativas erram ao tratar append como se fosse extend, ou ao mudar o tipo da estrutura. Resumo de prova: append adiciona um unico item; extend adiciona item por item. Em termos práticos, a FGV adora essa diferenca para ver se voce nao confunde lista com conjunto nem copia de conteudo com insercao de objeto.