一、enumerate ():遍历列表还能顺手拿索引
遍历列表时想同时获取元素和索引,不用手动加计数器,enumerate() 一步到位,还能自定义起始索引~
# 场景1:基础用法(默认从0开始)
fruits = ["苹果", "香蕉", "橙子"]
for idx, fruit in enumerate(fruits):
print(f"索引{idx}:{fruit}")
# 输出:
# 索引0:苹果
# 索引1:香蕉
# 索引2:橙子
# 场景2:自定义起始索引(从1开始更符合日常计数习惯)
for idx, fruit in enumerate(fruits, start=1):
print(f"第{idx}个水果:{fruit}")
# 输出:
# 第1个水果:苹果
# 第2个水果:香蕉
# 第3个水果:橙子
二、zip ():多列表 “手拉手” 遍历,超丝滑
需要同时遍历多个列表的对应元素时,zip() 能把多个可迭代对象打包成元组,避免手动按索引取值~
# 场景:匹配姓名和对应的成绩
names = ["小明", "小红", "小刚"]
scores = [90, 85, 95]
# 打包遍历,一一对应
for name, score in zip(names, scores):
print(f"{name}的成绩:{score}分")
# 输出:
# 小明的成绩:90分
# 小红的成绩:85分
# 小刚的成绩:95分
# 拓展:打包后转字典(快速构建键值对)
score_dict = dict(zip(names, scores))
print(score_dict) # 输出:{'小明': 90, '小红': 85, '小刚': 95}
三、any ()/all ():批量判断条件,超省心
需要判断列表中 “是否有满足条件的元素” 或 “是否全部满足条件” 时,不用写循环,any()/all() 直接出结果~
# 场景1:any() → 只要有一个满足条件就返回True
nums1 = [1, 3, 5, 7, 8]
has_even = any(num % 2 == 0 for num in nums1)
print(has_even) # 输出:True(8是偶数)
# 场景2:all() → 所有元素都满足条件才返回True
nums2 = [2, 4, 6, 8]
all_even = all(num % 2 == 0 for num in nums2)
print(all_even) # 输出:True
nums3 = [2, 4, 7, 8]
all_even = all(num % 2 == 0 for num in nums3)
print(all_even) # 输出:False(7不是偶数)
总结
enumerate()遍历可同时获取索引和元素,支持自定义起始值;zip()可打包多个可迭代对象,快速实现多列表对应遍历或构建字典;any()判 “存在满足”、all()判 “全部满足”,简化批量条件判断逻辑。