Python 基础 - List
-
特点:
- 可变性:列表是可变对象,所有修改操作都直接在原列表上进行
- 有序性:列表保持元素的插入顺序
- 异构性:可以存储不同类型的数据
- 可迭代:支持for循环遍历
- 支持嵌套:可以在列表中嵌套其他列表,形成多维结构
切片和索引
-
索引
list = ["张无忌", "赵敏", "成昆", "金毛狮王", "胡辣汤"] print(list[0]) # 张无忌 print(list[4]) # 胡辣汤 -
切片
list = ["马化腾","马云","任正非","雷政军"] print(list[0:3]) # ['马化腾', '马云', '任正非'] print(list[:3]) # ['马化腾', '马云', '任正非'] print(list[1::2]) # ['马云', '雷政军'] print(list[2::-1]) # ['任正非', '马云', '马化腾'] print(list[-1:-4:-2]) # ['雷政军', '马云']
增加操作
-
append()添加新的字符串到列表最后面list = ["马化腾","马云","任正非","雷政军"] list.append("周杰伦") print(list) # ['马化腾', '马云', '任正非', '雷政军', '周杰伦'] # 练习 list = [] while True: content = input("请输入你要录入学生的学号,输入Q即可退出") if content.upper() == 'Q': break list.append(content) print(list) -
insert()在索引的位置插入,插入位置后面的元素全部往后移一位list = ["马化腾","马云","任正非","雷政军"] list.insert(1, "周杰伦") print(list) # ['马化腾', '周杰伦', '马云', '任正非', '雷政军'] -
extend()迭代添加(新增),可添加多个元素list = ["马化腾","马云"] list.extend(["周杰伦","任正非","雷政军"]) print(list) # ['马化腾', '马云', '周杰伦', '任正非', '雷政军'] -
切片增加
list = ["马化腾","马云","任正非","雷政军"] list[1:1] = ["周杰伦"] print(list) # ['马化腾', '周杰伦', '马云', '任正非', '雷政军']
删除操作
-
pop()根据索引删除元素#默认删除list最后一个元素 l = ["马化腾","马云","任正非","雷政军"] deleted = l.pop() print(l) # ['马化腾', '马云', '任正非'] print("被删除的:",deleted) # 被删除的: 雷政军 el = l.pop(0) print("这一次被删除的:",el) # 这一次被删除的: 马化腾 print(l) # ['马云', '任正非'] -
remove()删除指定的元素l = ["马化腾","马云","任正非","雷政军"] l.remove("马云") print(l) # ['马化腾', '任正非', '雷政军'] #删除不存在的元素,就会报错 -
clear()清空listl = ["马化腾","马云","任正非","雷政军"] l.clear() print(l) # [] -
del方法切片删除l = ["马化腾","马云","任正非","雷政军"] del lt[1:3] print(l) # ['马化腾', '雷政军']
修改操作
-
切片修改
# 索引切片修改 l = ["马化腾","马云","任正非","雷政军"] l[1] = "周杰伦" print(l) #['马化腾', '周杰伦', '任正非', '雷政军'] l = ["马化腾","马云","任正非","雷政军"] l[1:3] = ["周杰伦"] print(l) #['马化腾', '周杰伦', '雷政军'] # 切片超过元素数量的话,后面的元素全部删除 l = ["马化腾","马云","任正非","雷政军"] l[1:4] = ["周杰伦"] print(l) #['马化腾', '周杰伦'] #步长不是一的话,要注意元素个数 l1 = ["马化腾","马云","任正非","雷政军"] l1[2:3:2] = ["周杰伦"] print(l1) #['马化腾', '马云', '周杰伦', '雷政军'] l2 = ["马化腾","马云","任正非","雷政军"] l2[0:3:4] = ["周杰伦"] print(l2) #['周杰伦', '马云', '任正非', '雷政军']
查询操作
-
for循环通过遍历查询(list是一个可迭代对象)l = ["马化腾","马云","任正非","雷政军"] for i in l: print(i) # for i in range(4): for i in range(len(l)): print(i,l[i]) # 输出; 0 马化腾 1 马云 2 任正非 3 雷政军 -
【例】查询和修改
# 练习,在列表中找到姓王的. 然后把姓王的名字全部改成"帅哥" lst = ["王重阳", "谢鞋倪", "刘爸爸", "王小二"] # 必须要有索引, 还要有元素 for i in range(len(lst)): item = lst[i] if item.startswith("王"): # 判断是否姓王,即list元素是否以王开头 lst[i] = "帅哥" # 修改 print(lst) # ['帅哥', '谢鞋倪', '刘爸爸', '帅哥']
计算元素出现次数
-
count()计算元素数量lst = ["王小二", "谢鞋倪", "刘爸爸", "王小二"] c = lst.count("王小二") print(c) # 2
排序
-
sort()默认升序lst = [77, 1, 33, 11, 22] lst.sort() print(lst) #[1, 11, 22, 33, 77] lst.sort(reverse=True) # 降序 print(lst) #[77, 33, 22, 11, 1] -
reverse()翻转,把原本的顺序颠倒lst = ["王小二", "谢鞋倪", "王小二","刘爸爸" ] lst.reverse() print(lst) #['刘爸爸', '王小二', '谢鞋倪', '王小二']
嵌套
在列表中嵌套另外一个列表
-
嵌套列表
lst = ["谢广坤", "刘能", ["雪碧", ["王思聪", "王剑林", "马云"], "可口可乐", 100, "芬达"], "长跪"] # 一层一层的查看 print(lst[2][1][2]) # 马云 # 练习 # 1.把王剑林中的"林"字改成"鳞" lst[2][1][1] = lst[2][1][1].replace("林", "鳞") # 王剑鳞 print(lst) # 2.把100, 乘以10 放回去 lst[2][3] *= 10 print(lst) # 3.把可口可乐中的乐打印出来 print(lst[2][2][3])
小结
| 方法/函数 | 功能描述 | 参数说明 | 返回值 |
|---|---|---|---|
list[index] 索引访问 | 通过索引访问列表元素 | index: 元素位置(0开始) | 对应位置的元素 |
list[startstep] 切片操作 | 获取列表的子集 | start: 开始位置end: 结束位置step: 步长 | 新的列表片段 |
append(element) | 在列表末尾添加新元素 | element: 要添加的元素 | 无(直接修改原列表) |
insert(index, element) | 在指定索引位置插入元素 | index: 插入位置element: 要插入的元素 | 无(直接修改原列表) |
extend(iterable) | 将可迭代对象的元素添加到列表末尾 | iterable: 可迭代对象(如列表) | 无(直接修改原列表) |
pop([index]) | 删除并返回指定索引位置的元素 | index: 要删除的元素位置(可选,默认最后一个) | 被删除的元素 |
remove(element) | 删除第一个匹配的指定元素 | element: 要删除的元素值 | 无(直接修改原列表) |
clear() | 清空列表中的所有元素 | 无参数 | 无(直接修改原列表) |
del list[index]del list[start:end] | 删除指定索引或切片范围的元素 | 索引或切片范围 | 无(直接修改原列表) |
list[index] = value 索引修改 | 修改指定索引位置的元素 | index: 要修改的位置value: 新值 | 无(直接修改原列表) |
list[start:end] = iterable 切片修改 | 修改切片范围的元素 | 切片范围和新的可迭代对象 | 无(直接修改原列表) |
count(element) | 统计指定元素在列表中出现的次数 | element: 要统计的元素 | 出现次数(整数) |
sort([reverse=False]) | 对列表进行排序 | reverse: 是否降序(默认False升序) | 无(直接修改原列表) |
reverse() | 反转列表中元素的顺序 | 无参数 | 无(直接修改原列表) |
len(list) | 获取列表长度(元素个数) | 列表对象 | 列表长度(整数) |
| for循环遍历 | 遍历列表中的所有元素 | - | - |
list[i][j] 嵌套访问 | 访问嵌套列表中的元素 | 多层索引 | 嵌套中的元素 |

浙公网安备 33010602011771号