Discuss / Python / 在set或dict中放入可变变量

在set或dict中放入可变变量

Topic source

岷人张

#1 Created at ... [Delete] [Delete and Lock User]

代码

print(set((1, 2, 3)))
# 正常打印
# {1, 2, 3}

print(set((1, [2, 3])))
# 报错
# TypeError: unhashable type: 'list'

解释

setdict不可以放入可变对象,因为无法判断两个可变对象是否相等。 [2,3] 实际是指向内存中的一个地址(和指针类似),而这个地址存放的内容又是随时可变的,所以该位置的参数不可变对象,不能放入 setdict

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

dict只限key不可变,value是不限的,set相当于只有key的dict

这个红色的解释解决了我的困惑!点赞!!


  • 1

Reply