为了账号安全,请及时绑定邮箱和手机立即绑定

set元素不可变的理解

dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。------摘自dict的特点

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。---摘自本文set的特点

以上两者综合,可以得出结论,set的元素不能包含list(代码验证过)。但是set整体本身包括大小和内容是可以修改的

tuple一旦创建就不能修改。不过list作为tuple的元素的时候list可变,但其实变的不是 tuple 的元素,而是list的元素。---摘自tuple

综合,set和dict的key,二者的元素不能是list,但是可以增删改。tuple可以包含list,但是tuple本身不能被增删改。。

https://img1.sycdn.imooc.com//5b2dc5dc000101d014200102.jpg


正在回答

2 回答

In [24]: s = {(1,2),3}


In [25]: s = {([1],2),3}

---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-25-effcd7cfac36> in <module>()

----> 1 s = {([1],2),3}


TypeError: unhashable type: 'list'


0 回复 有任何疑惑可以回复我~

s = set(['Adam',( 'Lisa','Bart'), 'Paul'])

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758621    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

set元素不可变的理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信