Python 学习笔记(九)Python元组和字典(一)
Python 元组
元组的定义 元组(tuple)是一种Python对象类型,元组也是一种序列
Python中的元组与列表类似,不同之处元组的元素不能修改
元组使用小括号,列表使用方括号
元组的创建,即在括号中添加元素,并使用逗号隔开
1 >>> a = 123,"aaa",["python","pass"] 2 >>> a 3 (123, 'aaa', ['python', 'pass']) 4 >>> type(a) 5 <type 'tuple'> 6 >>> print "I love %s,and I am a %s"%("Python","programmer") 7 I love Python,and I am a programmer
元组是一种序列,序列的基本操作 len() 、+、*、in、max()、min()、cmp()
元组与序列之间的转换
元组是不可修改的
1 >>> a =(1,2,3) 2 >>> id(a) #a与b两个元组进行对比,是两个不同的对象 3 44307080L 4 >>> b=(1,3,2) 5 >>> id(b) 6 48683696L 7 >>> a 8 (1, 2, 3) 9 >>> len(a) #计算长度 10 3 11 >>> b 12 (1, 3, 2) 13 >>> a + b #将两个元组连接在一起 14 (1, 2, 3, 1, 3, 2) 15 >>> a * 3 #将a元组重复3次 16 (1, 2, 3, 1, 2, 3, 1, 2, 3) 17 >>> 3 in a #判断3这个元素是否在a这个元组中 18 True 19 >>> 4 in a #判断4这个元素是否在a这个元组中 20 False 21 >>> max(a) #计算元组a中的最大值 22 3 23 >>> min(a) #计算元组a中的最小值 24 1 25 >>> cmp(a,b) #比较元组a、b的大小 26 -1 27 >>> alst =list(a) #将元组转换为列表 28 >>> alst 29 [1, 2, 3] 30 >>> c =tuple(alst) #将列表转换为元组 31 >>> c 32 (1, 2, 3) 33 >>> a 34 (1, 2, 3) 35 >>> a.append(4) #向元组中追加元素,元组不可追加元素 36 Traceback (most recent call last): 37 File "<stdin>", line 1, in <module> 38 AttributeError: 'tuple' object has no attribute 'append' #元组没有属性append 39 >>> dir(tuple) #dir 查看元组,仅有count index 40 ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index'] 41 >>> dir(list) 42 ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
元组的索引和切片,与列表和字符串类似
元组中只包含一个元素时,需要在元素后面添加逗号
1 >>> a 2 (1, 2, 3) 3 >>> a[0] #通过索引值取出元素 4 1 5 >>> a[1] 6 2 7 >>> a[2] 8 3 9 >>> a[1:] #通过切片方式取出元素 10 (2, 3) 11 >>> a[0:2] 12 (1, 2) 13 >>> a[::-1] #将元组a反转 14 (3, 2, 1) 15 >>> alst[1]=100 #向alst列表中增加元素 alst[1] 16 >>> alst 17 [1, 100, 3] 18 >>> a[1]=100 #元组中不能通过此方式添加元素 19 Traceback (most recent call last): 20 File "<stdin>", line 1, in <module> 21 TypeError: 'tuple' object does not support item assignment 元组不支持修改 22 >>> temp =list(a) #将元组a转换成列表存于temp临时变量中 23 >>> temp[1]=100 #将100添加到列表temp索引位置为1的地方 24 >>> a =tuple(temp) #再将temp转为元组 25 >>> a #实现元组与列表之间的互转 26 (1, 100, 3) 27 >>> [1] #单独的[1]是一个列表 28 [1] 29 >>> type([1]) 30 <type 'list'> 31 >>> type((1)) #单独(1)是一个整型 32 <type 'int'> 33 >>> type((1,)) #单独(1,)是一个元组, 元组中只包含一个元素时,需要在元素后面添加逗号 34 <type 'tuple'> 35 >>>
元组的count()和index()
1 >>> a 2 (1, 100, 3) 3 >>> b=a*3 4 >>> b 5 (1, 100, 3, 1, 100, 3, 1, 100, 3) 6 >>> b.count(1) #统计1出现的次数 7 3 8 >>> b.index(3) #计算3第一次出现的位置 9 2
元组的意义
元组比列表操作速度快
对数据“写保护” 因为元组不可修改
可用于字符串格式化中
可作为字典的key