首页 > 代码库 > python 数据类型(列表)学习笔记

python 数据类型(列表)学习笔记

列表
创建列表:
name_list = [alex, seven, eric]或name_list = list([alex, seven, eric])

 



其实今天学习的主要内容是
索引
切片
追加
删除
长度
切片
循环
包含


索引和切片:
可以通过下标进行灵活取值
定义一个列表 name = ["baobao","wangdleong","wangwenzhe","wangweiyi","wangda","wanger"]
name = ["baobao", "wangdleong", "wangwenzhe", "wangweiyi", "wangda", "wanger"]print(name[0]) #默认下标从0开始print(name[2]) #取出来第三个值print(name[0:2]) #取出零到到二之间的值print(name[-1])  #取出倒数第一个值print(name[::2]) #通过步长取值print(name[-3:]) #倒数第三个到最后的值print(name[::2][0]) #取出步长为2,下标为0的值print(name[::2][0][0])#对值进行再次切片name[0]="baoshan" #利用下标修改内容name.insert(3,"wangdejiang") #直接插入下标为3的位置内容name.append("lingling") #追加内容到最后name.remove("baoshan") #直接删除内容print(name)

打印的内容如下:

技术分享

小练习:

name = ["baobao", "wangdleong", "xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger"]name.insert(-1,"dalongfeng") #插入下标为-1的前面name.insert(3,"dabaozi") #插到下标为3的位置name2=name[2:8] #定义一个变量等于第一个的下标为2到7之间的值print(name2)print(name)del name[7] #通过下标利用del删除插入的内容(如果是连续的可以使用[2:5])del name[3]name[1]="wangdelongzuzhang" #利用修改添加备注print(name)print(name[::2]) #利用步长进行隔离打印,隔离个数根据步长确定

打印内容如下:

技术分享

 

 列表的拷贝等操作:

name = ["baobao", "wangdleong", 9,44,25,634,478,9,"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]print(9 in name) #判断列表是否包含元素9,如果有为真print(name.count(9)) #判断列表里面有几个9元素print(name.index(9)) #查找包含元素的第一个下标值name2=["dede",2, 8,9,3,7,1,58,"sdjagoew"]name.extend(name2) #合并列表name[0]="BAOBAO"print(name)name3=name.copy() #copy name成为name3print(name3)name.reverse() #翻转列表#name.sort() #排序,在3.0之后排序只能对字符串排序name2.pop() #默认删除最后一个name2.pop(1) #利用下标删除指定的值print(name2)print(name)#可以利用好循环修改列表里面所有相等的元组元素for i in range(name.count(9)):    name[name.index(9)]=999999print(name)

 

 打印的结果:
技术分享

 浅拷贝对比

name = ["baobao", "wangdleong", [9,44,25,634,478,9],"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]name3=name.copy()name[0]="BAOBAO" #在此位置修改不会带到name3里面去name[2][1]=58247 #如果该镶套聊表里面的东西 name3会跟着变name3[2][2]="DDDDDD" #如果通过name3修改也会相互的更改#出现的原因是列表里面的镶套列表使用的是单独的内存空间print(name)print(name3)

技术分享

技术分享

 深度拷贝应用,在下面有一个如何看元素个数的len
import sys,copyname = ["baobao", "wangdleong", [9,44,25,634,478,9],"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]name3=name.copy()name4=copy.copy(name) #和neme拷贝一样,是浅拷贝name5=copy.deepcopy(name) #深度拷贝,是直接拷贝了一个内存块name[0]="BAOBAO" #在此位置修改不会带到name3里面去name[2][1]=58247 #如果该镶套聊表里面的东西 name3会跟着变name3[2][2]="DDDDDD" #如果通过name3修改也会相互的更改#出现的原因是列表里面的镶套列表使用的是单独的内存空间print(name)print(name3)print(name4)print(name5)
print(len(name5)) #列表长度,元素个数
print(id(name),id(name3),id(name4),id(name5)) #可以通过id,查看内存位置

技术分享

 

python 数据类型(列表)学习笔记