6
respostas

Erro ao usar & ou |

Quando eu uso & ou | recebo o erro abaixo:

usuarios_data_science & usuarios_machine_learning Traceback (most recent call last): File "<pyshell#12>", line 1, in usuarios_data_science & usuarios_machine_learning TypeError: unsupported operand type(s) for &: 'list' and 'list'

Consegui resolver usando o seguinte:

set(usuarios_data_science) & set(usuarios_machine_learning) {56, 23}

Não estou conseguindo entender o porque deste erro, alguém poderia me ajudar ou indicar alguma referência bibliográfica?

6 respostas

Olá Dennis,

Pelo que consigo ver na mensagem de erro está te dizendo que você está querendo comparar duas listas e por isso não funciona, porém teria que ver seu código completo para dizer em que momento que você criou duas listas ao invés de dois sets. Exatamente por esse motivo que quando você transformou os dois em sets funcionou.

Se puder colar o código aqui ajudaria muito.

Eu usei o código do exercício do vídeo.

No Python os sinais de & e OU são diferentes das outras linguagens, & neste caso está pegando tudo que tem em uma lista e também tem na outra. Em Python temos and e or.

Usando & ou and funciona com o set, como eu mostrei no primeiro exemplo. Já procurei a resposta em diversos lugares e não encontrei nada.

Obrigado Leonardo, eu cheguei a testar estes outros e funcionou, encontrei diversas formas de fazer. Mas a minha questão é: Por que o do professor funcionou no vídeo e o meu não, eu fiz exatamente a mesma coisa, cheguei a baixar inclusive o código dele e testar.

Eu não estou usando o Colab, estou usando a IDE do python mesmo, baixado na comunidade.