Discuss / Python / 交作业

交作业

Topic source

虎车网

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

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可变,导致哈希化失败

这个例子太经典了!

逍遥昱昕

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

确实很深刻!

牵风叶

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

原来如此,谢谢!

poppylb

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

受教了

6

hah,简单明了。 dict和set都是要求key不可变的 元组(1,2,3)里1,2,3都不可变 (1,[2,3])里的[2,3]里的值是可变的是么?

_Left

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

啊,明白了,3Q


  • 1
  • 2

Reply