我是编程和使用dataquest来学习基础知识的新手。与此同时,我使用jupiter QT控制台来检查我的代码,而不是dataquest的东西。
我编写了一段代码来从数据中提取所有性别并将它们附加到新列表中。因为我想要一个唯一值列表,我会应用一个set函数,但这就是它出错的地方。
这是我的代码
import csv
f = open("legislators.csv","r")
g = csv.reader(f)
leglist = list(g)
leglist_=leglist[1:]
gender = []
for x in leglist_:
gender.append(x[3])
gender = set(gender)
This returns an error
TypeError Traceback (most recent call last)
<ipython-input-13-356f2359660b> in <module>()
----> 1 gender = set(gender)
TypeError: unhashable type: 'list'
这很奇怪,因为当我在dataquest网站的解释器中使用相同的代码时,它会返回唯一的性别值集 当我使用jupiter QTconsole时,它会返回错误
我做错了什么,怎么可能有区别?
亲切的问候,
答案 0 :(得分:-1)
只有不可变对象在Python中可以使用。套装要求其物品可以清洗。列表不可清洗。 你可以这样做:
gender = set()
for x in leglist_:
if x[3] not in gender:
gender.add(x[3])