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

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

Topic source

a = (1,2,3)

b = {a}   // {(1, 3, 4)}

b[0] 会报错  // TypeError: 'set' object does not support indexing

说明没有创建自动创建 b 字典的下标 0 

================

a = (1,[2,3])

b = set(a) 这样直接会报错:TypeError: unhashable type: 'list'

Resalee

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

1、这样创建的b是set,不是dict

a=(1,2,3)
b={a}
type(b) #<class 'set'>

2、set和dict是无序的,所以用数字下标是会报错的

Resalee

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

当然,如果dict里用数字做key,是可以通过这个数字获取到对应的value的,比如

c={2:22,3:33}
c[2] #22

  • 1

Reply