python
列表的切片
意义:
基于列表,通过切片操作,得到一个新的列表
注意:
基于索引值操作:第一个索引值为0
语法:
list[start:stop:step]
start:
表示切片的开始位置
stop
表示切片结束位置(不包含终点)
可以省略不写,如果不写,默认到最后(包含最后一个)
step
表示步长
可以省略,如果不写,默认值为1
切出前三个
切出后三个
步长为正
步长为负
列表倒序
切片操作中不存在越界问题
列表常用功能
添加
append(obj)
尾部添加元素
insert(index,obj)
指定位置插入指定元素
extend(list)
将一个列表中的所有元素,逐个加入到另外一个列表中
删除
list.remove(要删除的元素)
del list[index]
list.pop(index)
list.clear()
清空
查询
value in
列表是否包含目标元素
value not in list
列表中是否不包含目标元素
index(obj)
查看目标元素在列表中首次出现的索引值,如果没有,报错
count(obj)
查看目标元素出现的次数,如果没有返回0
修改
赋值:
list[index]=value
翻转:
list.remove()
将列表翻转(对源数据操作)
reversed(list)
得到一个翻转的新列表
排序:
list.sort()
按自然顺序(对元数据操作)
list.sort(reverse=True)
按从大到小进行排序
sorted(list)
按自然顺序排序(得到一个排序后的新列表,源数据不变)
嵌套列表
可以存储任意多个不同数据类型的集合(有序序列)
列表内存示意图
students=[]
for i in range(1,4):
print(f'请输入第{i}个学生的信息')
name=input('姓名:')
age=input('年龄:')
stu=[name,age]
students.append(stu)
print(students)
for i in range(len(students)):
stu_list=students[i]
for u in stu_list:
print(u,end='')
print()
深浅复制(拷贝)
查看内存地址id()
查看数据类型type()
列表中自带的功能是浅拷贝
import copy
copy模块中提供了深浅复制功能
浅复制
copy.copy(x)
深复制
copy.deepcopy(x)
区别:
1.如果列表存储的数据为基本类型,深浅复制没有区别,都是复制一份新的出来
2.如果列表中存储的数据为复合对象(列表中存储的元素为列表,字典,元组...),深浅复制有区别
2.1 浅复制
尽可能复制地址
2.2 深复制
尽可能复制数据
深浅拷贝表达图