1. 循环的else子句 【重点】
- 作用:当循环正常结束(未被
break
中断)时执行
- 典型场景:检测循环是否完整执行(如搜索元素未找到时触发)
nums = [1, 3, 5, 7]
for num in nums:
if num % 2 == 0:
print("找到偶数")
break
else:
print("未找到偶数")
2. 循环嵌套
- 规则:外层循环执行一次,内层循环执行全部
- 示例:打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}x{i}={i*j}", end="\t")
print()
⚠️ 注意:嵌套层次不宜过多(通常不超过3层)
3. for循环与range函数
- range的三种形式:
形式 |
示例 |
说明 |
range(stop) |
range(5) |
生成0,1,2,3,4 |
range(start, stop) |
range(2, 5) |
生成2,3,4 |
range(start, stop, step) |
range(1, 10, 2) |
生成1,3,5,7,9(步长2) |
for i in range(10, 0, -1):
print(i)
列表操作详解
1. 列表基础
- 定义:
列表 = [元素1, 元素2, ...]
(元素类型可不同)
- 遍历:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
2. 列表切片 【核心操作】
操作 |
示例 |
结果 |
全列表 |
nums[:] |
复制整个列表 |
指定区间 |
nums[1:4] |
索引1到3的元素 |
从头开始 |
nums[:3] |
索引0到2的元素 |
到末尾结束 |
nums[2:] |
索引2到末尾的元素 |
负数索引 |
nums[-3:-1] |
倒数第3到倒数第2个 |
带步长 |
nums[::2] |
每隔一个元素取一次 |
逆序 |
nums[::-1] |
反转列表 |
nums = [0, 1, 2, 3, 4, 5]
print(nums[1:4])
print(nums[::2])
print(nums[::-1])
3. 增删改查操作
增加元素
方法 |
示例 |
说明 |
append(元素) |
heros.append("雷神") |
末尾添加单个元素 |
extend(可迭代对象) |
heros.extend(["美队", "黑寡妇"]) |
合并另一个列表/字符串等(原地修改) |
切片赋值 |
heros[len(heros):] = ["鹰眼"] |
等效于append |
insert(位置, 元素) |
heros.insert(1, "蜘蛛侠") |
在指定索引前插入元素 |
heros = ["钢铁侠", "绿巨人"]
heros.append("雷神")
heros.extend(["美队", "黑寡妇"])
heros[3:] = ["鹰眼"]
heros.insert(1, "蜘蛛侠")
删除元素
方法 |
示例 |
说明 |
remove(元素) |
heros.remove("雷神") |
删除首个匹配元素(无匹配时报错) |
pop([索引]) |
heros.pop(1) |
删除并返回指定位置元素(默认最后一个) |
clear() |
heros.clear() |
清空列表 |
heros = ["钢铁侠", "蜘蛛侠", "绿巨人", "雷神"]
heros.remove("蜘蛛侠")
last = heros.pop()
heros.pop(0)
修改元素
heros[1] = "黑寡妇"
heros[2:] = ["美队", "鹰眼"]
查找与统计
方法 |
示例 |
说明 |
count(元素) |
nums.count(3) |
统计元素出现次数 |
index(元素, start, end) |
nums.index(3, 2, 5) |
返回元素首次出现的索引(可指定范围) |
nums = [1, 2, 3, 2, 3, 4]
print(nums.count(3))
print(nums.index(3, 3, 5))
4. 排序与反转
nums = [3, 1, 4, 2]
nums.sort()
nums.sort(reverse=True)
nums.reverse()
5. 列表复制
nums = [1, [2, 3], 4]
nums_copy = nums.copy()
nums_copy[1][0] = 99
综合示例
numbers = [5, 2, 8, 3]
numbers.append(1)
numbers.extend([4, 7])
numbers.insert(2, 6)
numbers.pop()
numbers.sort()
sub_list = numbers[2:5]
重点总结
- else子句:仅当循环未被
break
时执行,适合处理“未找到”逻辑
- 切片操作:灵活提取子列表,支持负数索引和步长
- 增删方法:
append
/extend
区别:前者加单个元素,后者合并可迭代对象
pop
不带参数时删除最后一个元素
- 浅拷贝陷阱:嵌套列表的修改会影响原列表