Python列表(List)

Python列表操作(一)

1.列表(list)

在Python中,列表(list)是一种可变的序列,列表中数据的可以是其他各种不同的数据类型,支持增删查改等操作。用中括号“[]”代表开始和结束,支持下标索引;

2.列表创建

创建空列表		l=list();

3.列表拷贝复制

列表复制方法:直接赋值,类型转换,切片赋值,copy浅拷贝,深拷贝;
python创建/赋值/复制
t0=(1,2,3,(1,2))			#元组(1,2,3,(1,2))
l0=[1,2,3,[4,5,6,[7,8,9]]	#列表[1,2,3,[1,2]]
l1=l0						#赋值,完全复制,地址和内容跟原来完全一样
l2=list(l0)					#类型转换+浅拷贝
l3=list(t0)					#元组转换成列表
l4=list({1,2,3})			#集合转换成列表
l5=l0.copy()				#浅拷贝,只拷贝了表面一层的内容,深层发生改变是跟着改变
l6=l0[:]					#浅拷贝,同上,以切片的方式进行拷贝
l7=copy.copy(l0)			#浅拷贝,同上,需要导入copy模块
l8=copy.deepcopy(l0)		#深拷贝,需要导入copy模块,对整个列表进行了一次拷贝,跟原来的列表没有关联了
分别修改原列表第一层、第二层和第三层的值;

l0[0]=0						#l0=[1,2,3]是给整个l0重新复制,l0的内存地址发生了改变,不会影响到其他的列表
l0[3][0]=0
l0[3][3][0]=0
print("直接赋值:       "+str(l1),"list(l0):       "+str(l2),"list(t0):       "+str(l3),"list({1,2,3}):  "+str(l4),
      "l0.copy():      "+str(l5),"l0[:]:          "+str(l6),"copy.copy(l0) : "+str(l7),"copy.deepcopy(l0):"+str(l8),sep="\n")
运行结果:

Alt

“=”号直接赋值的全部发生了改变;
浅拷贝类型的,只有第一层跟着发生了变化;
深拷贝类型的,完全不受原列表的影响;

4.添加列表元素

方法:append(),extend(),insert(),+;
append()往列表尾部添加元素
格式:l.append(value),value为添加元素;
l=[1,2,3]
l.append(4)				#每次只能添加一个元素
l.append(5)
print(l)
运行结果:

在这里插入图片描述

insert()往列表指定位置插入元素
格式:insert(index, value),index为插入位置,value为插入数据;当index大于列表长度时,在列表的最后一位插入数据;
l.insert(0, 0)			#insert()必须有两个参数,前一个是插入的位置,后一个是插入的数据
l.insert(6, 6)
print(l)
运行结果:

在这里插入图片描述

extend拼接两个列表
格式:l1.extend(l2),l1和l2是两个列表,拼接后的列表为l1;
l1=[1,2,3]
l2=[40,50,60]
l3=l1.extend(l2)
print(l1)				#extend()拼接两个列表,l1的内存地址不会发生改变
print(l3)				#extend()方法没有返回值
运行结果:

在这里插入图片描述

“+”拼接两个列表
格式:l3=l1+l2;
l1=[1.2.3]
l2=[8,9,10]
l1=l1+l2				#把l1和l2拼接起来的结果赋值给l1,l1重新进行了赋值,内存地址发生了变化
print(l1)				#返回值为拼接之后的列表,拼接后原列表发生改变不会影响结果
运行结果:

在这里插入图片描述

5.查找列表元素

方法:下标读取,切片读取,index(),in成员运算;
下标读取
通过下标可以直接读取相对于位置的元素;
格式:l[i];
l=[1,2,3]
print(l[0],l[1],l[2])
运行结果;

在这里插入图片描述

切片读取
格式:l[start:end:step],start为起始位置,默认是列表第一个元素;end为结束位置,默认为列表最后一个元素的后一位;step为步长,默认值为1;
切片形式读取元素包含了start,不包含end;
l=[1,2,3,4,5,6]
l1=l[:]						#等价于l[0:6:1]/l[0:6];
l2=l[5:0:-1]				#步长为负数时,代表切片方向为反向,步长代表相邻元素的跨度;
l3=l[-6:-1:2]				#切片的位置参数为-n时,表示的是列表的后起第n位元素
							#等价于l[0:5:2]/l[0:-1:2];
l4=l[2::-1]					#反向切片的尾部是列表第一个元素是,end参数需要空置,否则无法读取到列表第一位的元素;
l5=l[10:1:-1]				#当start参数超出列表下标范围是,表示切片从列表最最后一位开始(包括最后一位);
print(l1,l2,l3,l4,l5,sep="\n")
运行结果:

在这里插入图片描述

index()方法查找
格式:l.index(value,[start, [,stop]]),index为查找的元素,start为查找开始位置,stop为查找结束位置(不包含),返回值为查找到的第一个元素的位置;如果查找的元素不存在,会显示出错信息;
l=['Tom','Bob','Jack','Tony','Cindy','Bob','Black','Bob']
a=l.index('Bob')
b=l.index('Bob',2, 6)
print(a, b, sep='\n')
运行结果:

在这里插入图片描述

in判断是否为列表成员
格式:value in l;
l=[1,2,3,4,5,6]
print(2 in l)
print(7 in l)
运行结果:

在这里插入图片描述

下一篇>>>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值