Discuss / Python / tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。

tuple虽然是不变对象,但试试把(1, 2, 3)和(1, [2, 3])放入dict或set中,并解释结果。

Topic source

这句话啥意思??哪位可以解释一下呀。。蟹蟹?

tuple是不变对象,但是允许有(1,2,3)和(1,[2,3])两种形式,但是第二种方式里存在list,是可以通过list操作来改变list中的内容的,但是对于tuple而言还是不变的。但是在dict和set中不允许有可变对象,因为其中包含可变对象的话dict和set就没有意义了。所以,在dict和set中,允许有(1,2,3)的这种tuple对象,但是不允许有(1,[2,3])的这种tuple对象。我不知道我讲清楚了没。。你可以通过练习来仔细体会一下其中的差别。

疾风剑昊

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

说到底,放到dict或者set中的元组或者列表中的每一个对象都是用来当作key的,而可变对象是不能用来做key的,因此(1,2,3)中的1、2、3这个3个不可变对象可以做key,而(1,[2,3])中的1可以做key,而[2,3]不可以。


  • 1

Reply