3
respostas

uso do set e list

Prezados, ao executar o codigo abaixo apresenta o seguinte erro: zero_km_y = []

for lista in dados: if (lista[2] == True): zero_km_y.append(lista) else: zero_km_n.append(lista) zero_km_n

list(set(zero_km_n))

TypeError: unhashable type: 'list

OBS: A VARIAVEL zero_km_n é do tipo lista. porque ocorre esse erro ?

3 respostas

Oii Ramon, tudo bem por aí?

Seguindo o código da aula

zero_km_y , zero_km_n = [], []
for lista in dados:
  if(lista[2] == True):
    zero_km_y.append(lista)
  else:
    zero_km_n.append(lista)

E depois apenas digitando o nome da lista

zero_km_n

Nós temos a resposta:

[['Jetta Variant', 2003, False],
 ['Passat', 1991, False],
 ['Crossfox', 1990, False],
 ['Aston Martin DB4', 2006, False],
 ['Palio Weekend', 2012, False],
 ['Série 3 Cabrio', 2009, False],
 ['Dodge Jorney', 2019, False],
 ['Carens', 2011, False]]

Note que existe uma lista dentro de outra lista, ou seja para que você consiga ter sucesso usando o comando list(set(zero_km_n)) é necessário que você diga qual lista você quer, dentro dessa lista zero_km_n. Se por exemplo você quer acessar as informações do Crossfox com esse comando, utiliza-se:

list(set(zero_km_n[2]))

E o retorno é:

[False, 1990, 'Crossfox']

Caso você tenha mais dúvidas sobre as estruturas de dados, sugiro a leitura da documentação do Python que fala sobre Data Structures a única observação é que o site está em inglês.

Também estou disponível se tiver mais alguma dúvida! :)

obrigado pelo retorno. Resolvi esse erro usando o metodo .copy() da lista. O objetivo do código é remover os duplicados e adicionar numa lista. Dito isso consegui esse resultado com o codigo a baixo: list(set(zero_km_n.copy()))

Ahh, que bom que deu certo!

Obrigada pelo feedback!