列表类型

1、用途

按照位置存多个值

2、定义方式

在[]内用逗号分隔开多个任意类型的值
l = [111, 3.1, "abc", []]  # l=list(...)
print(type(l))

类型转换
list(传入的可以是任意能够被for循环遍历的类型)

print(list("hello"))
print(list(["a",'b']))
print(list({"k1":11,'K2':222}))

3、常用操作及内置方法的使用

1.通过列表索引正向取值或是反向取值
列表类型可以通过索引去取值或是改值,但是不能取加值

lis=[111,222,'arther',[222,333]]
lis[2]='egon'
print(lis[1])
lis[4]='aaaa'  报错
dic={'k1':111,'k2':222,'k3':333}
print(dic['k1'])
dic['k1']=555
dic['k4']=444
print(dic)

在字典中可以取加值

2.顾头不顾尾,步长

lis=[11,222,333,444,[111,222]]
print(lis[:-1])
#所有的切片操作不管对象是可变或是不可变,都是拷贝一份再进行操作  
print(lis)
lis2=lis[:]
#======浅拷贝=======
#示范一
lis[0]=666
print(lis)
print(lis2)#不受影响

#示范二
lis[-1][0]=333
print(lis)
print(lis2) #受到了影响
l2=lis.copy()

浅拷贝是在新列表中复制了目标列表内所有值的内存地址,并且脱离了目标列表,所以当目标列表内存地址的值发生改变时,
新列表没有随之改变,如果目标列表内有子列表之类的可变类型的内存地址,在子列表内进行添加或删除的操作,
那其目标列表类的子列表内存地址没有发生改变,只是子列表的子内存地址发生改变。由于目标地址的子列表内存地址
直接对应新列表的子列表内存地址,那目标列表中子列表的改变也将发生在新列表内。
深拷贝

from copy import deepcopy
lis=[11,222,333,444,[111,222]]
l2=deepcopy(lis)
lis[4][1]=555
print(lis)
print(l2)

深拷贝相当于在把新列表中可变类型对应的内存地址改成一个没有与被拷贝列表可变类型内存地址相关联的新列表内存地址,
然后在把原列表的可变类型装的值放入新列表内存地址,这样当原列表不论发生任何变化,新列表都不会有任何关联且被改变。
总结:浅拷贝适合只读的操作,深拷贝适合可读、可写的操作。

3.长度

lis = [111, 222, 333]
lis_len = len(lis)
print(lis_len)

5.追加

lis=[11,222,333,444,[111,222]]
lis.append(222)
print(lis)  #就只能在列表最后的位置添加
res=lis.insert(0,555) #在指定索引的前面添加
print(lis)
print(res)  #返回为None,并没有拷贝进行操作

6.删除

lis=[11,222,333,444,[111,222]]
del lis[0] #万能删除法

lis.remove([111,222]) #指定删除,没有返回值
print(lis)

res=lis.pop(0)
print(lis)
print(res)   #可以拿到返回值

需要掌握的内置操作
1.extend

l1=[444,555,666,777]
lis=[11,222,333,444,[111,222]]
lis.extend(l1)   #将l1内的值打散按索引并依次加入到lis中
lis.extend('hello')
print(lis)

2.count

l1=[111,222,333,333,3334,444]
res=l1.count(333)
print(res)  #数有多少

3.sort

lis=[11,222,333,444,[111,222]]
print(lis.sort())         #有子列表报错
print(lis[-1].sort())     #报空
print(lis)                #报错
从小到大排列 要切括号内必须是纯数字
lis = [-15, -2222, 5555, 333, 111]
lis.sort(reverse=True) #反转
print(lis)
print(lis.reverse())  #None

4.index查询值对应的索引位置,自由设定查询区间

print(lis.index(333))
#没有则报错

类型总结

存多个值

有序

可变类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值