1.1 元组
元组用小括号表示,小括号中的元素用“,”隔开。为了区别小括号中是元组元素还是数值,在元组只有一个元素时,在元素后加上“,”来避免困扰。注意元组是不可变动的对象,元组创建后不能变动每个索引所指向的引用对象。用索引号来改变元素的值会报错。例如:
tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", "b", "c", "d" tup1 = () #创建空元组 tup1 = (50,) #只包含一个元素的元组
1.1.1 元组的相关操作
1. Unpacking元素,即快速拆分元素,操作如下:
number = (12,13,14) #packing a,b,c = number #unpacking print('a=',a,'b=',b,'c=',c) >>>a= 12 b= 13 c= 14
2. 切片运算
3. 排序,借助sorted()函数来完成
语法:sorted(tuple [,key][,reverse])
reverse:默认值为False 升序,若为True则为降序
key:关键字,若存在根据关键字排序
1.2 列表的基本操作
语法:sorted(tuple [,key][,reverse])
reverse:默认值为False 升序,若为True则为降序
key:关键字,若存在根据关键字排序
1.2 列表的基本操作
列表用中括号表示,与元组基本一致,不过列表的元素时可变的,即可以通过[运算符指定索引编号]来更改某个元素值。
1.2.1与列表有关的方法
- append(x):将元素x加到列表的最后
- extend(t):将可迭代对象t加到列表最后 (一般用于给列表插入一个元素)
- insert(i,x):将x按索引号i插入列表中 (一般用于两个列表链接)
- remove(x):删除x,与del s[i]相同
- pop([x]):按索引值i删除元素,并返回,若未给定i则删除并返回最后一个元素
- s[i] = x:对索引号i的元素重新赋值
- clear():清除所有元素
列表对象提供的方法:
- reverse():将序列元素全部反转
- count(x):序列元素x出现的次数
- index(x):x第一次出现的索引编号
1.2.2列表排序
list.sort(key,reverse =None)
key:关键码,可省
reverse=None则是升序,若为True则是降序
注意:元组不能使用sort(),否则会报错。列表也可以使用sorted(),但sorted()和sort()有不同,sorted()是返回一个排序后的副本,原列表并未排序,而sort()是直接对原列表进行排序。
1.2.3 列表推导式
Python提供推导式,它可以将一个或多个迭代器聚集在一起,再以for循环作为条件测试。
语法如下:
[表达式 for item in 可迭代的(即列表)]
[表达式 for item in 可迭代的if表达式]
列表推导式:
alist = []#空列表 for itemin 可迭代的: if 条件表达式: alist.append(item)
例如:
numA = [] for item inrange(10,50): if(item % 7== 0): numA.append(item) print('10~50被7整除的数为:',numA) >>>10~50被7整除的数为:[14, 21, 28, 35, 42, 49]
5.3 谈一谈列表复制问题
列表的复制有“浅复制”和“深复制”两种:
浅复制有如下几种复制方式:
- =赋值语句: data =[15,23,44];number = data
- *运算符
- 切片
- copy模块的copy()方法:copy.copy(x)
注意:使用浅复制时copy()方法复制的是对象的引用,即若num2 =num1.copy(),那么改变num1不会影响num2,但是改变num2会影响num1。若采取的是深复制deepcopy()时,num1和num2均是独立的对象引用,无论是改变num1还是num2均不会相互影响。