使用update()函数向集合中添加元素时,若以元组的形式添加,为什么该元组中存在列表就会报错?

使用update()函数向集合中添加元素时,若以元组的形式添加,为什么该元组中存在列表就会报错?

college1 = {"哲学", "经济学", "法学", "教育学"}
i = (["生物学",'医学'], ["工程学"])
college1.update(i)
print(college1)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手乔木 2020-02-21 17:08:09

同学你好:

这是因为set中不能存储不能hash的数据类型。

http://img1.sycdn.imooc.com//climg/5e4f8caf0948d13f05050048.jpg

不能hash的数据类型有列表,字典,集合:

http://img1.sycdn.imooc.com//climg/5e4f9da709a67b4003870274.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

  • 提问者 慕粉1353163323 #1
    老师,字典和集合不就是hash存储的吗?为什么算不能hash的类型呢?
    2020-02-21 20:39:55
  • 慕之熠_灿烈 回复 提问者 慕粉1353163323 #2
    字典和集合是hash存储,但是是对里面的键值对进行hash算法,而不是直接对dict、set这两个数据类型直接进行hash存储。 一个对象能被称为 hashable , 它必须有个 hash 值,这个值在整个生命周期都不会变化,也就说python中的不可变对象才可被成为可hash类型,而可变对象一般情况下是不可hash的()。
    2020-02-22 10:20:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师