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

为什么key不能用包含list的tuple?

教程上说key必须用不可变元素,所以不能用list,可用整数浮点字符串和tuple等

但我用了tuple嵌套list就不行了,即使tuple里有list,但tuple本身不还是不可变元素吗?

以下是我自己在电脑上试一试的代码

d= {

    ('A', ['X']): 78

}

print d

结果报错了

TyoeError:unhashable type: 'list'

正在回答

5 回答

tuple 的不变指的是 tuple的每个元素,指向永远不变

当使用 list 作为 tuple 的元素 这个 tuple 实际上已经是一个可变的 tuple 了 key要求从指向到内容都必须不可变

2 回复 有任何疑惑可以回复我~
#1

慕慕2064174 提问者

谢谢!
2017-09-05 回复 有任何疑惑可以回复我~

tuple只是指向不变,指向一对象,就不能指向其他的对象了

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

tuple所谓的“不变”是说,Tuple的每个元素,指向永远不变,即指向一个对象后,就不能再指向其他对象了。如果要让tuple作为key,就要创建一个内容也不便的tuple,即tuple的每一个元素本身也不能变。

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

回答有错误,抱歉

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

tuple不是不可变元素,你还是可以对它进行add和remove的改变

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

举报

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

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

进入课程

为什么key不能用包含list的tuple?

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