Python 常用内置高阶函数全套用法(zip、enumerate、all、any)

原始人用心编程 2026-04-29 22:54:35

一、前言

日常编码高频必用:zipenumerateallany 四大内置高阶函数。

都是 Python 原生自带,不用导入任何模块,简洁实用、面试常考、写代码必备。

二、enumerate 带索引遍历

作用

遍历序列时,同时拿到下标和元素,不用自己定义计数器。

基础语法

enumerate(可迭代对象, 起始下标)

实战代码

lst = ["Python", "Java", "C++", "Go"]

# 默认从0开始
for idx, item in enumerate(lst):
    print(idx, item)

# 指定起始下标从1开始
for idx, item in enumerate(lst, start=1):
    print("序号", idx, "语言:", item)

适用场景:排行榜、序号列表、需要记录位置的遍历。

三、zip 打包配对

作用

多个序列按位置一一配对打包,短的序列结束就停止。

基础用法

a = [1, 2, 3]
b = ["张三", "李四", "王五"]

# 打包配对
res = zip(a, b)
print(list(res))

循环遍历 zip

num = [101, 102, 103]
name = ["语文", "数学", "英语"]

for n, m in zip(num, name):
    print(f"编号{n} 科目:{m}")

解压 zip

把打包好的数据还原拆分:

data = [(1,"A"), (2,"B"), (3,"C")]
nums, chars = zip(*data)
print(nums)
print(chars)

适用场景:两个列表关联一一对应、表格数据合并、字典快速构建。

四、all 全部满足条件

作用

判断可迭代对象所有元素都为真才返回 True,有一个假就返回 False。

示例代码

# 全部非空、非0、不为False
print(all([1,2,3,4]))
print(all([1,0,3]))

# 结合条件判断
nums = [2,4,6,8]
res = all(x % 2 == 0 for x in nums)
print("是否全是偶数:", res)

适用场景:批量校验、全部达标才通过、权限全满足判断。

五、any 任意一个满足条件

作用

可迭代对象只要有一个为真,就返回 True;全假才返回 False。

示例代码

print(any([0, "", False]))
print(any([0, 1, False]))

# 是否存在奇数
nums = [2,4,6,7]
res = any(x % 2 == 1 for x in nums)
print("是否包含奇数:", res)

适用场景:批量筛查、只要有一个符合条件就触发逻辑。

六、综合实战案例

案例:学生成绩批量校验

scores = [85, 92, 78, 60]
names = ["张三","李四","王五","赵六"]

# 1. 序号+姓名+成绩遍历
for idx, name in enumerate(names, 1):
    print(f"{idx}. {name}")

# 2. 姓名成绩配对
for name, score in zip(names, scores):
    print(f"{name}:{score}分")

# 3. 是否全部及格
all_pass = all(s >= 60 for s in scores)
print("是否全员及格:", all_pass)

# 4. 是否有满分
has_full = any(s >= 100 for s in scores)
print("是否有满分:", has_full)

七、总结与学习心得

本篇全新学习了四个 Python 高频内置函数:

  1. enumerate:带索引遍历,替代手动计数
  2. zip:多序列按位配对、合并、解压
  3. all:所有元素满足条件才为真
  4. any:任意一个满足条件就为真

这四个函数写法简洁、运行高效,在数据处理、列表遍历、条件批量判断中经常用到,也是面试、考试、日常开发的常考点,熟练掌握可以大幅精简代码、提升编程规范度。

...全文
27 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
  • 举报
回复
@原始人用心编程

151

社区成员

发帖
与我相关
我的任务
社区描述
这里专为新疆政法学院的探索者而建,英雄不问出处。起跑线是起点,热忱与坚持为加速器,无论bug缠身的项目,还是攻克的算法顿悟,每滴汗水皆被珍藏。执炬前行,终将照亮彼此峰顶,我们携手同行。
课程设计笔记经验分享 高校 新疆·图木舒克市
社区管理员
  • 雲中203
  • SHAO060706
  • 三叶草.
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

英雄不问出处

试试用AI创作助手写篇文章吧