Python里元组(tuple)和列表(list)的外观很相似,都属于sequence的一种。只是圆括号和方括号的区别,许多操作也相同,比如切片读取(slicing)、遍历(iterate)等。说到它们的不同,很多场合都会讲,list是可以修改的,tuple是不可修改的。但这并没有解释到本质。 它们本质是:tuple是 一个元素 ,而list是元素的 集合 单个元素自然是不能改变的(immutable),所以可以作为字典的键值:{(1,2): 1} 而集合是可以伸缩的,所以不能作为字典键值: >>> d=[1,2] >>> b[d]=3 Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'list'