1、元祖(tuple) Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组 。元祖处理数据比列表更快,元祖不能更改但是可以重新定义,元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。但是元祖并不是以圆括号来设定的,而是逗号。 如: >>> a=1, >>> type(a) >>> a (1,) >>> a=1,2,3 >>> a (1, 2, 3) >>> a=(1) >>> a 1 >>> type(a) 由上可知,决定性因素在于逗号,光是括号的话定义的是整型,并非元祖。 元祖的元素访问和列表一样。 如: >>> a=1,2,3,4 >>> a (1, 2, 3, 4) >>> a[0] 1 >>> a[-1] 4 >>> a[3-1] 3 >>> a[3/1] >>> a[3//1] 4 >>> a[3%1] 1 元祖也可以用循环语句来遍历 多元性赋值元祖 如: >>> x,y=((1,),(2,)) >>> x (1,) >>> y (2,) 可以一句话赋值或交换(x,y=y,x)两个元祖 如: >>> x,y=y,x >>> x (2,) >>> y (1,) 如果要确定一个值是不是可变类型的时候可以通过哈希运算知晓,能进行哈希运算的是不可变类型,不能进行哈希运算的是可变类型。 如: >>> hash('123') 7144841512821313950 >>> hash(123) 123 #字符串和整型是不可变类型,所以用hash函数运算的时候有哈希值 >>> hash([1,2]) Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'list' #列表是可变类型,在进行hash运算的时候报错,由此可以区分 什么是哈希呢? 哈希其实是一种算法,又称数字摘要、“消息摘要”,简单理解hash就是一种数据内容和数据存放地址之间的映射关系。Hash算法是一种只能加密不能解密的算法,可以将任意长度的信息转成杂乱的固定长度的字符串。应用最广泛的Hash算法有MD5和SHA-1。