列表的相关操作
列表的拼接
lst=[1,2,3]
lst1=[4,5,6,7]
res=lst+lst1
print(res)
[1, 2, 3, 4, 5, 6, 7]
列表的重复
lst=[456]
res =lst*3
print (res )
[456, 456, 456]
列表的切片
语法==>列表[ : : ] 完整格式[开始索引:结束索引:间隔值]
开始索引
[开始索引 : ]
lst=[1,2,3,4]
res =lst [ 2 : ]
print (res )
[3, 4]
结束索引
[ : 结束索引]
lst=[1,2,3,4,5,6,7]
res =lst [ : 3]
print(res )
[1, 2, 3]
开始,结束索引
lis=[1,2,3,4,5,6,7,8,9]
res =lst [ 2 : 5]
print(res)
[3, 4, 5]
[开始索引:结束索引:间隔值]
lis=[1,2,3,4,5,6,7,8,9]
res=lst [ 2 : 6 : 2]
print(res)
[3, 5]
逆向截取
lst=[ 1,2,3 ]
res=lst[ : : -1]
[ : ] 或者[ : : ]截取所有列表
列表的获取
lst =[1,2,3,4,5,6]
res=lst[2]
print (res)
3
列表的修改(可切片)
#没有带步长可以替换一堆
#带有步长只能切几个替换几个
#修改的数据是可迭代型数据
#迭代数据是容器,range,迭代器
一个一个替换
lst=[1,2,3,4,5,6,7,8,9]
lst[5]=‘张媛’
print(lst)
[1, 2, 3, 4, 5, ‘张媛’, 7, 8, 9]
一堆替换
lst=[1,2,3,4,5,6,7,8,9]
lst[2:5]=‘4,5,6’
print(lst)
[1, 2, ‘4’ , ‘,’ , ‘5’ , ‘,’ , ‘6’ , 6, 7, 8, 9]
带有步长替换
lst=[‘wnagwen’,‘马玉’,‘自豪’,‘张加油’,‘wang’,‘丽丽’]
lst[:3:2]=[1,3]
print(lst)
[1, ‘马玉’, 3, ‘张加油’, ‘wang’, ‘丽丽’]
列表的删除 (可切片)
#删除用del
删除单个
lst =[1,2,3,5]
del lst[2]
print (lst)
[1, 2, 5]
删除一堆 用切片
lst=[1,2,5,7,9]
del lst [ 1 : 3 ]
print(lst)
[1, 7, 9]
错误用法:
地址发生变化,删掉的是res变量
lst=[‘lili’,‘张家强’,‘王志恒’,‘朱家桥’]
res= lst [ 1 : ]
del res
print(lst)
列表的相关函数
增
append 向列表的末尾添加新元素
lst=[1]
lst.append(‘黄伟’)
print (lst)
[1, ‘黄伟’]
insert 在指定索引之前插入
lst=[1]
lst.insert (0 , 2 )
print(lst)
[2, 1]
extend 迭代着追加,一次可以插一堆
#追加的是可以迭代的对象
lst=[1,2,3]
lst1=[4,5,6]
lst.extend(lst1)
print(lst)
[1, 2, 3, 4, 5, 6]
lst=[1,2,3]
dic={‘ss’:‘丽丽’}
lst.extend(dic)
print(lst)
[1, 2, 3, ‘ss’]
删
pop 通过指定索引删除元素,若没有索引移除最后那个(推介使用)
lst=[1,2,3,4,5]
lst.pop()
print (lst)
[1, 2, 3, 4]
lst=[‘李白’,‘杜甫’,‘白居易’]
lst.pop(1)
print(lst)
[‘李白’, ‘白居易’]
remove 通过给予的值来删除,如果多个值相同,默认删除第一个
lst=[2,3,4]
lst.remove(3)
print(lst)
[2, 4]
clear 清空列表
lst=[‘张伟’,‘礼服’,‘今天’]
lst.clear()
print(lst)
[]
改和查 可参考列表的操作这个文件
index
获取某个值在列表中的索引,如果这个值不存在,会报错
lst=[1,2,3,4]
res=lst.index(2)
print(res)
1
count计算某个元素出现的次数
lst=[1,2,4,5,6,4,4,4,5]
res=lst.count(4)
print(res)
4
sort 列表排序(默认从小到大排)
lst=[1,2,4,5,6,4,4,4,5]
lst.sort()
print(lst)
[1, 2, 4, 4, 4, 4, 5, 5, 6]
从大到小排序 reserse 反转
lst=[1,2,4,5,6,4,4,4,5]
lst.sort(reverse=True)
print(lst)
[6, 5, 5, 4, 4, 4, 4, 2, 1]
对字母进行排序(字母排序按照ascii编码)
#字母是一位一位进行比较,第一位一样,比第二位.
对中文也可以排序,一般是三个字节,但是无规律可循.
reverse 列表反转操作(水平反转)
lst=[100,200,-3,-3]
lst.reverse()
print(lst)
[-3, -3, 200, 100]
tuple 元组中的函数只有两个 count , index
#跟列表中的使用方法是一样的.
#元组中如果有二级可修改容器,也可以增加
tup =(1,2,3,[4,5,6])
tup [-1] . append(8)
print(tup)
(1, 2, 3, [4, 5, 6, 8])
深拷贝和浅拷贝
浅拷贝(只拷贝一级所有元素,其他层级延续以前的数据)
方法一
lst1=[1,2,3,4]
lst2=lst1.copy()
lst1.append(8)
print(lst1 )
print(lst2)
[1, 2, 3, 4, 8]
[1, 2, 3, 4]
方法二
copy .copy copy 模块 copy 函数(推荐使用)
import copy
lst=[1,2,3,4]
lst2=copy.copy(lst)
lst.append(8)
print(lst)
print(lst2)
深拷贝(所有层级的元素都拷贝一份,形成独立的副本)
copy.deepcopy
lst=[1,2,3,4,[5,8,9]]
lst1=copy.deepcopy(lst)
lst[-1].insert(1,888)
print(lst)
print(lst1)
[1, 2, 3, 4, [5, 888, 8, 9]]
[1, 2, 3, 4, [5, 8, 9]]
深拷贝可以用在字典里面
dic={‘aa’ : ‘你好’ , ‘aaq’ : ‘最爱’ , ‘ss’ : '离职 ’ , ’ qq ’ : [1,2,3]}
dic1=copy.deepcopy(dic)
dic [‘qq’].append(2)
print(dic)
print(dic1)
{‘aa’: ‘你好’, ‘aaq’: ‘最爱’, ‘ss’: ‘离职’, ‘qq’: [1, 2, 3, 2]}
{‘aa’: ‘你好’, ‘aaq’: ‘最爱’, ‘ss’: ‘离职’, ‘qq’: [1, 2, 3]}
copy和deepcopy 浅拷贝更快
地址:原来不可变的只是暂时的指向,可变的数据独立开辟新空间
可变数据: 列表 集合 字典
本文介绍了Python列表的各种操作,包括拼接、重复、切片、获取、修改、删除等基本操作,以及append、insert、extend、pop、remove、clear、sort等函数的使用方法,同时探讨了浅拷贝和深拷贝的概念及其区别。
689

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



