1:tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。
>>>a = ('james', 'jordan', 'kobe') >>>b = ('james' , ['jordan', 'kobe']) >>>dict1={a:'篮球运动员'} >>>dict1[a] >>>'篮球运动员' >>>dict2={b:'篮球运动员'} >>>Traceback (most recent call last): >>> File "<stdin>", line 1, in <module> >>>TypeError: unhashable type: 'list' #tuple a 所指向的三个人是不可变的的 他们都是篮球运动员 #tuple b 所指向的只有james是不可变的的 还有两个人虽然是叫jordan kobe但不一定就是打篮球的 可能是踢足球的jordan和打乒乓球的kobe
什么意思?看不懂耶!
楼主厉害!简单明了!dict和set的key必须是不可变对象! (1,[2,3])是一个含有list的tuple,list可变,导致哈希化失败
这个例子太经典了!
确实很深刻!
原来如此,谢谢!
受教了
6
hah,简单明了。 dict和set都是要求key不可变的 元组(1,2,3)里1,2,3都不可变 (1,[2,3])里的[2,3]里的值是可变的是么?
啊,明白了,3Q
Sign in to make a reply
虎车网
1:tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。