错误“unhable type”list

2024-04-26 10:10:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是编程新手,使用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时,它返回错误

我做错了什么,怎么可能有区别呢?你知道吗

谨致问候


Tags: csv代码in列表编程genderlistjupiter
1条回答
网友
1楼 · 发布于 2024-04-26 10:10:52

在Python中只有不可变的对象是可哈希的。集合要求其项是可哈希的。列表不可散列。 你可以这样做:

gender = set()
for x in leglist_:
    if x[3] not in gender: 
        gender.add(x[3])

相关问题 更多 >