3
respostas

Python com erro nos conjuntos

Boa tarde!

Meu python aparece o seguinte erro quando faço conjunto igual ao do vídeo. Eu já refiz como tal na aula umas três vezes, porém ainda continuo com esse erro. Alguém sabe o que está acontecendo? Obrigado!

usuarios_data_science = {15, 23, 43, 56}

usuarios_machine_learning = {13, 23, 56, 42}

assistiram = usuarios_data_science.copy()

assistiram.extend(usuarios_machine_learning)

for usuario in set(assistiram):

print(usuario)

C:\Users\felip\PycharmProjects\Collections_List_Tuples\venv\Scripts\python.exe C:/Users/felip/PycharmProjects/Collections_List_Tuples/Conjuntos.py Traceback (most recent call last):

File "C:/Users/felip/PycharmProjects/Collections_List_Tuples/Conjuntos.py", line 9, in assistiram.extend(usuarios_machine_learning)

AttributeError: 'set' object has no attribute 'extend'

Process finished with exit code 1

3 respostas

Oi Felipe, como você está?

É apenas um errinho de sintaxe. As variáveis usuarios_data_science e usuarios_machine_learning estão declaradas como set e não como lista, isso porque você as declarou usando chaves e o uso de chaves se refere ao tipo de dado set e esse tipo realmente não possui o atributo extend, por isso o erro. O extend é um atributo de listas e listas são declaradas com colchetes.

Altere de:

usuarios_data_science = {15, 23, 43, 56}

usuarios_machine_learning = {13, 23, 56, 42}

Para:

usuarios_data_science = [15, 23, 43, 56]

usuarios_machine_learning = [13, 23, 56, 42]

Com isso, seu código deverá funcionar como esperado.

Qualquer dúvida estou por aqui. Abraços e bons estudos!

Oi Nádia, como vai?

Obrigado pela resposta! Entretanto, meu código não está arrumando os números em ordem de grandeza, seja usando o "set" para lista ou fazendo um conjunto. Tens alguma ideia do motivo?

Boa noite, Felipe.

Você diz que não está organizando em ordem quando o professor faz: set(assistiram) e aparece: {13,15,23,42,43,56}?

Não precisa necessariamente aparecer nessa ordem, do menor para o maior, pode aparecer em qualquer ordem desde que não tenha elementos repetidos.

Qualquer coisa me avisa, a gente vai conversando.