1.列表
与Java中的*集合*性质相同,用于储存一组数据.
格式: 列表名=[元素1,元素2,元素3,元素4,...];
A:列表元素获取
方式一: 列表名[索引]
方式二(切片):列表名[索引1:索引2] PS:此方式包左不包右,用冒号分开
方式二举例:name=["Harry","Smith","Lily","OnionKnight"]
print(name[1:3])
#取Smith和Lily
print(name[-1])和print(name[3])两者都是取OnionKnight
PS:负数的索引为倒数的顺序的索引,因此-1代表倒数第一个元素
print(name(-2:))#此方式取Lily和OnionKnight
print(name[0:3])#将取到从第一个元素到下标为2的元素
print(name[:3])#与上面的效果相同
PS:首尾的下标可以省略
B:列表元素的添加
方式一:用append(要添加的元素)方法
ex:name.append("Alex")
方式二:用insert(索引)方法
ex:name.insert(2)#原索引上的元素将后移
C:列表元素替换
name[2]="Tom"
D:列表元素的删除
方式一:用remove(要删除的元素)方法
ex:name.remove("Tom")
方式二:用del关键字
ex:del
name[0]#删除第一个元素
方式三:用pob(要删除的索引)方法
ex:name.pop()#默认删除最后一个元素
ex:name.pop(0)#删除下标为0的元素
E:列表元素查找
方式一: 用index(要查找的元素)的方法
ex:index("Lily"),返回元素的下标,但若元素不存在,则报错.
F:列表元素统计
用count(要统计的元素个数)
ex:name.count("Lily")#返回列表中元素值为Lily的元素个数
name.count()#返回列表中的元素个数
G:其他方法
name.clear():清空列表
name.reverse():反转列表元素
name.sort():将列表元素排序,字符串将按照ASCII码顺序排序
name.extend():类似与Java中集合的addAll方法
ex:
arr=[1,2,3,1,4]
name.extend(arr)#将arr添加到name列表中
2.列表的遍历
for i in name:
print(i)#这个i代表列表的每一个元素,类似Java的foreach循环
3.列表的遍历
for i in name[0:-1:2]:#从列表开始复制到列表结束,步长为2,即遍历列表下标为奇数的元素
print(i)
4.列表的元素的浅复制和深复制
因为Python的变量不强制要求数据类型,因此列表的元素的类型可以不一致
ex: arr=[2,"Dava",65];
name=[1,3,2,1,"Harry",arr,3,6.3]
A.浅复制
列表本身提供了一个copy()方法,此方法为浅复制,只复制第一层的元素
ex:name2=name.copy();
此时name2开辟了新的内存空间,其中name中的基本数据类型及字符串均是直接复制值给name2.
但引用类型则是传递了地址值,例如arr,本身是列表,是引用类型,此时更改name里的arr的元素,name2里的
arr的元素将一同改变.
PS:与Java类似,基本类型及字符串,传递的是值,原变量修改后,不会影响到新变量.
引用类型,传递的是地址值,修改原对象,将直接对内存上的内容修改,因此新对象上的内容也将改变
B.深复制
需要使用copy模块
import copy
ex: arr=[2,"Dava",65];
name=[1,3,2,1,"Harry",arr,3,6.3]
#copy模块提供了两个方法copy()和deepcopy()
copy()与列表本身的copy()方法一致
deepcopy()则是深度复制,
name2=copy.deepcopy(name)#此方法复制出来的name2与原name已无任何关系,对name的修改,将不会
影响name2
本文详细介绍了Python中列表的基本操作,包括元素的获取、添加、替换、删除、查找、统计等,并解释了列表的遍历方法及浅复制与深复制的区别。

785

被折叠的 条评论
为什么被折叠?



