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

posted @ 2018-03-13 21:16  冰雪柔情的天空  阅读(275)  评论(0编辑  收藏  举报