零基础学Python第八节:列表切片与常用方法Python 基础 · 第八节 | 切片、排序、反转、enumerate 一次搞懂🎯 本节目标
掌握列表切片的四种玩法(基本 / 负索引 / 步长 / 复制),以及 sort / reverse / enumerate / count / index 五个高频方法。切片是列表的灵魂,学会它操作数据如鱼得水!
| |
|---|
| list | |
| |
| sort() | |
| reverse() | |
| enumerate() | |
| count() | |
| index() | |
切片用于获取列表的一部分(子列表),语法为 列表[起始:结束:步长],左闭右开(包含起始,不包含结束)。
grade = ["张三", 18, "李四", 20, "王五", "赵六"]
print(grade[0:2]) # ['张三', 18](索引 0 到 1)
print(grade[4:]) # ['王五', '赵六'](从索引 4 到末尾)
print(grade[:2]) # ['张三', 18](从开头到索引 1)
print(grade[:]) # 复制整个列表
print(grade[-3:]) # ['李四', 20, '王五', '赵六'](后 3 个到末尾)
print(grade[:-1]) # ['张三', 18, '李四', 20, '王五'](去掉最后一个)
print(grade[-3:-1]) # ['李四', 20, '王五'](负索引区间)
步长表示每几个元素取一个,默认为 1:
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nums[::2]) # [0, 2, 4, 6, 8](每隔一个取一个)
print(nums[1::2]) # [1, 3, 5, 7, 9](从索引 1 开始每隔一个)
print(nums[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0](反转列表)
original = [1, 2, 3]
copy_list = original[:] # 复制整个列表
copy_list[0] = 99
print(original) # [1, 2, 3](原列表不受影响)
print(copy_list) # [99, 2, 3]
📖 说明:用切片 [:] 复制列表得到的是独立副本,修改副本不会影响原列表。
age = [67, 12, 34, 89, 3, 23]
age.sort() # 升序排序
print(age) # [3, 12, 23, 34, 67, 89]
age.sort(reverse=True) # 降序排序
print(age) # [89, 67, 34, 23, 12, 3]
▶ 运行结果
[3, 12, 23, 34, 67, 89]
[89, 67, 34, 23, 12, 3]
age.reverse()
print(age) # [3, 12, 23, 34, 67, 89](又变回升序)
▶ 运行结果
2.3enumerate() - 同时获取索引和值li = [5, 6, 9, "test", 3.14]
for index, value in enumerate(li):
print(f"索引 {index} → {value}")▶ 运行结果
索引 0 → 5
索引 1 → 6
索引 2 → 9
索引 3 → test
索引 4 → 3.14
nums = [1, 2, 2, 3, 2, 4, 2]
print(nums.count(2)) # 4(2 出现了 4 次)
print(nums.count(5)) # 0(5 没有出现过)
▶ 运行结果
fruits = ["苹果", "香蕉", "橘子", "香蕉"]
print(fruits.index("香蕉")) # 1(第一个匹配的索引)print(fruits.index("橘子")) # 2▶ 运行结果
NEXT · 下一节预告
🚀 字符串和元组常用操作:切片进阶、常用方法一次讲透
觉得有用?点个「♥」,分享给正在学 Python 的朋友 💛
关注我,零基础 Python 入门系列持续更新中