遍历、添加、修改、查询、切片、排序、翻转、深浅拷贝等"/>
python列表的创建、数据类型、索引、循环遍历、添加、修改、查询、切片、排序、翻转、深浅拷贝等
文章目录
- python列表
- 一、创建列表
- 二、查看数据类型和列表中的数据
- 三、通过索引获取列表中的数据
- 四、列表的循环遍历
- 五、列表的添加
- append
- insert
- '+'加法
- extend
- 六、删除操作
- pop:指定索引删除数据,如果索引不存在则报错
- remove:根据内容删除
- clear:清除所有内容,变成空列表[]
- del:删除列表
- 六、修改
- 七、查询
- 1、通过索引获取元素
- 2、根据内容统计个数
- 3、根据内容返回索引值
- 4、指定查找,范围内没有则会报错
- 八、列表的切片
- 九、列表的排序
- 十、翻转
- 十一、深浅拷贝
- 浅拷贝
- 深拷贝
python列表
列表是一个有序的,可修改的,元素以逗号分割,以中括号包围的序列。
列表格式:
变量名= [元素1,元素2,元素3,…]
一、创建列表
lst = ['name', 12, '李嘉豪']
二、查看数据类型和列表中的数据
print(lst) # ['name', 12, '李嘉豪']
print(type(lst)) # <class 'list'>
三、通过索引获取列表中的数据
lst = ['name', 12, '李嘉豪']
ret = lst[0]
print(ret) # name
四、列表的循环遍历
# lst = ['name', 12, '李嘉豪']
for i in lst:print(i)
'''
输出:
name
12
李嘉豪
'''
五、列表的添加
append
lst = ['name', 12, '李嘉豪']
lst.append('tom')
print(lst) # ['name', 12, '李嘉豪', 'tom']
insert
lst = ['name', 12, '李嘉豪']
lst.insert(0, 'jey')
print(lst) # ['jey', 'name', 12, '李嘉豪', 'tom']
'+'加法
lst = ['name', 12, '李嘉豪']
lst1 = ['mary', 'eric']
lst2 = lst + lst1
print(lst2) # ['jey', 'name', 12, '李嘉豪', 'tom', 'mary', 'eric']
extend
lst = ['name', 12, '李嘉豪']
lst1 = ['mary', 'eric']
lst.extend(lst1)
print(lst) # ['name', 12, '李嘉豪', 'mary', 'eric']
六、删除操作
pop:指定索引删除数据,如果索引不存在则报错
lst = ['name', 12, '李嘉豪']
lst.pop(0)
print(lst) # [12, '李嘉豪']
remove:根据内容删除
lst = ['name', 12, '李嘉豪']
lst.remove(12)
print(lst) # ['name', '李嘉豪']
clear:清除所有内容,变成空列表[]
lst = ['name', 12, '李嘉豪']
lst.clear()
print(lst) # []
del:删除列表
lst = ['name', 12, '李嘉豪']
del lst
print(lst) # NameError: name 'lst' is not defined
六、修改
lst = ['name', 12, '李嘉豪']
lst[0] = '啦啦啦'
print(lst) # ['啦啦啦', 12, '李嘉豪']
七、查询
1、通过索引获取元素
lst = ['name', 12, '李嘉豪']
ret = lst[0]
print(ret) # name
2、根据内容统计个数
num = lst.count('李嘉豪')
print(num) # 1
3、根据内容返回索引值
index = lst.index('李嘉豪')
print(index) # 2
4、指定查找,范围内没有则会报错
length = len(lst)
print(length) # 3
ret = lst.index('name', 0, length)
print(ret) # 0
八、列表的切片
lst = ['name', 12, '李嘉豪']
ret = lst[0:2:1]
print(ret) # ['name', 12]
print(lst) # ['name', 12, '李嘉豪']
九、列表的排序
升序排序:
lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
print(lst) # ['tom', 'jerry', 'carl', 'zs', 'ls']
lst.sort()
print(lst) # ['carl', 'jerry', 'ls', 'tom', 'zs']
降序排序:
lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
lst.sort(reverse=True)
print(lst) # ['zs', 'tom', 'ls', 'jerry', 'carl']
十、翻转
lst = ['tom', 'jerry', 'carl', 'zs', 'ls']
lst.reverse()
print(lst) # ['ls', 'zs', 'carl', 'jerry', 'tom']
十一、深浅拷贝
浅拷贝
第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址
lst = ['豪']
lst1 = ['李', '嘉', lst]
lst2 = lst1.copy()
print(lst1) # ['李', '嘉', ['豪']]
print(lst2) # ['李', '嘉', ['豪']]
lst2[0] = '龚'
# lst1的内存地址是35591432;lst2的内存地址是35591560
print(id(lst1), lst1) # 35591432 ['李', '嘉', ['豪']]
print(id(lst2), lst2) # 35591560 ['龚', '嘉', ['豪']]
lst2[2][0] = '佳'
# 更深层的数据,例如lst1[2]和lst[2]都是同一个内存地址35198152
print(id(lst1[2]), lst1[2]) # 35198152 ['佳']
print(id(lst2[2]), lst2[2]) # 35198152 ['佳']
深拷贝
导入 copy 模块
Import copy
copy.deepcopy()
import copylst = ['豪']
lst1 = ['李', '嘉', lst]
lst2 = copy.deepcopy(lst1)
print(lst1) # ['李', '嘉', ['豪']]
print(lst2) # ['李', '嘉', ['豪']]
# 修改第一层内容
lst2[0] = '龚'
print(lst1) # ['李', '嘉', ['豪']]
print(lst2) # ['龚', '嘉', ['豪']]
# 修改第二层内容
lst2[2][0] = '佳'
print(lst1) # ['李', '嘉', ['豪']]
print(lst2) # ['龚', '嘉', ['佳']]
更多推荐
python列表的创建、数据类型、索引、循环遍历、添加、修改、查询、切片、排序、翻转、深浅拷贝等
发布评论