欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 学习笔记(九)Python元组和字典(一)

程序员文章站 2022-04-16 10:17:53
Python 元组 元组的定义 元组(tuple)是一种Python对象类型,元组也是一种序列 Python中的元组与列表类似,不同之处元组的元素不能修改 元组使用小括号,列表使用方括号 元组的创建,即在括号中添加元素,并使用逗号隔开 元组是一种序列,序列的基本操作 len() 、+、*、in、ma ......

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