一、列表
列表是一系列按特定顺序排列的元素组成,其中的元素之间没有任何关系
在Python中用方括号 [ ] 表示列表,并用逗号分割其中的元素
stu = ['name','age','id','sex',10,34] print(stu)
['name', 'age', 'id', 'sex', 10, 34]
1.通过索引下标访问列表元素,索引从 0 开始 ,可以类似于数组一样使用列表元素
stu = ['name','age','id','sex',10,34] print(stu) print(stu[0],stu[3]) print(stu[3].title()) stu[3] = "fdsfe" mess = "fwef" + stu[3] print(stu,mess)
['name', 'age', 'id', 'sex', 10, 34] name sex Sex ['name', 'age', 'id', 'fdsfe', 10, 34] fweffdsfe
2.增加,删除,修改列表
.append(‘val’) 在列表末尾添加元素
.insert(pos,'val') 在列表中插入元素,需要指定新元素的索引和值
stu = []
stu.append("apple")
stu.append('分为')
stu.append(3423)
print(stu)
stu.insert(0,"sfdf")
stu.insert(3,"光荣")
print(stu)
['apple', '分为', 3423] ['sfdf', 'apple', '分为', '光荣', 3423]
del 语句删除在任何位置的列表元素,前提是知道索引的位置,
.pop() 删除列表末尾的元素,也可以指定位置的索引删除指定的元素,
.remove() 根据元素的值来删除
stu = ['name','age','id','sex',10,34]
del stu[2]
print(stu)
print(stu.pop(),stu)
print(stu.pop(0),stu)
stu.remove('sex')
print(stu)
['name', 'age', 'sex', 10, 34] 34 ['name', 'age', 'sex', 10] name ['age', 'sex', 10] ['age', 10]
指定列表名和要修改的列表元素的索引,赋予该位置新值,就可完成修改
stu = ['name','age','id','sex',10,34] stu[2] = "ffew" stu[4] = "342" print(stu)
['name', 'age', 'ffew', 'sex', '342', 34]
3.列表的切片
要创建切片,可指定使用的第一个元素的索引和最后一个元素的索引加1.
stu = ['name','age','id','sex',10,34]
print(stu) #全部输出
print(stu[3]) #通过索引指定位置输出
print(stu[2:5]) #通过索引指定输出从第二个到第五个之间的字符
print(stu[:5]) #没有指定第一个索引,将自动从列表的开头开始
print(stu[3:]) #没有指定结束位置,将终止于列表末尾
for val in stu[:4]:
print(val) #遍历 0~4 之间的列表值
['name', 'age', 'id', 'sex', 10, 34] sex ['id', 'sex', 10] ['name', 'age', 'id', 'sex', 10] ['sex', 10, 34] name age id sex
复制列表可以通过切片的方法
s1 = ['name','age','id','sex',10,34]
s2 = s1
print("s1 = ",s1,"s2 = ",s2)
s1.insert(3,'dfew')
s2.append(234)
print("s1 = ",s1,"s2 = ",s2) #s1,s2 本质上指向一个列表,所以s1与s2一致
s3 = s1[:]
print(s1,s3)
s1.insert(5,'sfd')
s3.insert(2,"海飞丝")
print("s1 = ",s1,"s3 = ",s3) #s3 是 s1 的副本,两者互不相干
s1 = ['name', 'age', 'id', 'sex', 10, 34] s2 = ['name', 'age', 'id', 'sex', 10, 34] s1 = ['name', 'age', 'id', 'dfew', 'sex', 10, 34, 234] s2 = ['name', 'age', 'id', 'dfew', 'sex', 10, 34, 234] s1 = ['name', 'age', 'id', 'dfew', 'sex', 10, 34, 234] s3 = ['name', 'age', 'id', 'dfew', 'sex', 10, 34, 234] s1 = ['name', 'age', 'id', 'dfew', 'sex', 'sfd', 10, 34, 234] s3 = ['name', 'age', '海飞丝', 'id', 'dfew', 'sex', 10, 34, 234]
4.列表的排序
.sort() 永久性修改列表的排列顺序,按首字母的从小到大顺序排。
如果向sort() 传递参数 reverse = True,按相反的顺序排
stu = ['name','age','id','sex'] print(stu) stu.sort() print(stu) stu.sort(reverse=True) print(stu)
['name', 'age', 'id', 'sex'] ['age', 'id', 'name', 'sex'] ['sex', 'name', 'id', 'age']
.sorted() 对列表进行临时排序,按首字母的从小到大顺序排,如果向 sorted() 传递参数 reverse = True,按相反的顺序排
stu = ['name','age','id','sex'] print(stu,sorted(stu)) print(sorted(stu,reverse = True))
['name', 'age', 'id', 'sex'] ['age', 'id', 'name', 'sex'] ['sex', 'name', 'id', 'age']
.reverse() 倒着打印列表
stu = ['name','age','id','sex',10,34] stu.reverse() print(stu)
[34, 10, 'sex', 'id', 'age', 'name']
5. 列表的长度
len() 函数快速获悉列表
stu = ['name','age','id','sex',10,34] print(len(stu))
6
6. for 循环遍历整个列表
stu = ['name','age','id','sex',10,34]
for val in stu: #遗漏冒号将会导致语法错误
print(val) #一定要缩进,否则会出错
7.数字列表
rang() 函数可以生成一系列的数字列表
stu = []
for val in range(1,5): #range值 1~4
stu.append(val ** 2) #插入 val 的平方
print(stu)
[1, 4, 9, 16]
可以将 range(init,stop,len) 作为 list() 的参数生成数字列表,使用range时,可以指定步长
num = list(range(1,6)) print(num)
[1, 2, 3, 4, 5]
stu = [23,54,3,2,5,2,7865,2,9,0,21,1] print(min(stu)) #最小值 print(max(stu)) #最大值 print(sum(stu)) #求和
二、元组
1. Python将不能修改的值称为不可变的,而不可变的列表被称为元组
元组使用圆括号 ()来标识,可以使用索引来访问元素
stu = (234,546)
print("stu = ",stu,"stu[0] = ",stu[0],"stu[1] = ",stu[1])
stu[0] = 32 #尝试修改
stu[1] = 324
print("stu = ",stu,"stu[0] = ",stu[0],"stu[1] = ",stu[1])
stu = (234, 546) stu[0] = 234 stu[1] = 546 Traceback (most recent call last): File "/Users/sw-diag/Desktop/SW-USERS/Lin/Python/main.py", line 140, instu[0] = 32 #尝试修改 TypeError: 'tuple' object does not support item assignment
2. for循环遍历元组
stu = (234,546,324,67,23)
for val in stu:
print(val)
234 546 324 67 23
3.修改元组
在不修改元组元素的基础上通过给存储元组的变量赋值修改元组。
相较于列表,元组是更单一的数据结构,故而如果需要存储一组值在程序的整个生命周期内都不变,可以用元组
stu = (234,546,324,67,23) print(stu) stu = (32,3,65,1) print(stu)
(234, 546, 324, 67, 23) (32, 3, 65, 1)



