list 的格式 a=['a','b','c']对象
tuple 的格式 a=('a','b','c')排序
dict 的格式 a={a:b}--b能够省略 a不能为listhash
set 的格式 a=set((a))--a不能为listast
a=(1,2,3)module
b=(1, [2, 3])call
c={a} {(1, 2, 3)} 这里(1,2,3)应该是一个总体的key值dict
d={b}di
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'ab
dict 的key必须为不可变对象。而 b中的[2,3]可变因此报错。
e={a:b}
{(1, 2, 3): (1, [2, 3])}
e[a]
(1, [2, 3])
dict 的key必须为不可变对象。这里将key变成了不可变对象。value是否可变无影响。
b[1][0]=3
e
{(1, 2, 3): (1, [3, 3])}
f=set(a)
{1, 2, 3} 这里1,2,3表示有这三个元素,即便是显示结果排序了,也不表示set是有序的。
g=set(b) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'
set 的key必须为不可变对象。而 b中的[2,3]可变因此报错。