苦练Python第31天:enumerate、zip与元组解包

前言

大家好,我是倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎回到 苦练Python100天 的第 31 天!

今天,我们一口气掌握三个常被忽视、却能瞬间让代码 更简洁、更优雅、更具表达力 的 Python 神技:

  • enumerate()
  • zip()
  • 元组解包

下面用极简示例带你秒懂。


🔢 1. enumerate() ------ 循环里同时拿索引和值

❌ 传统写法

python 复制代码
fruits = ['apple', 'banana', 'cherry']

for i in range(len(fruits)):
    print(i, fruits[i])

✅ 优雅写法

python 复制代码
for index, fruit in enumerate(fruits):
    print(index, fruit)

输出:

复制代码
0 apple
1 banana
2 cherry

想让索引从 1 开始?

python 复制代码
for i, fruit in enumerate(fruits, start=1):
    print(i, fruit)

🔗 2. zip() ------ 多列表元素配对神器

✅ 基本用法

python 复制代码
names = ['Alice', 'Bob', 'Charlie']
scores = [85, 92, 78]

for name, score in zip(names, scores):
    print(f"{name} scored {score}")

输出:

复制代码
Alice scored 85
Bob scored 92
Charlie scored 78

⚠️ 长度不一致?

zip() 会停在最短的序列:

python 复制代码
a = [1, 2, 3]
b = ['x', 'y']
print(list(zip(a, b)))  # [(1, 'x'), (2, 'y')]

需要填充缺失值,请用 itertools.zip_longest()


🎁 3. 解包 ------ 把序列一键拆成变量

✅ 元组解包

python 复制代码
person = ("John", 25, "Engineer")
name, age, job = person

print(name)  # John
print(age)   # 25
print(job)   # Engineer

✅ 循环里直接拆

python 复制代码
pairs = [(1, 'one'), (2, 'two'), (3, 'three')]

for number, word in pairs:
    print(f"{number} = {word}")

🎯 忽略不需要的值

python 复制代码
data = ("Tom", 30, "Doctor")
name, _, profession = data

下划线 _ 是约定俗成的"占位符"。


🔍 为什么值得用?

工具 典型场景
enumerate() 需要索引 + 值的循环
zip() 并行迭代多个序列
解包 简洁地把序列拆成变量

三者结合,让你的代码 更易读、更 Pythonic、更少 Bug


🧠 实战挑战

python 复制代码
students = ['Emma', 'Liam', 'Olivia']
grades = [91, 88, 95]

# 任务:输出 "1. Emma scored 91" 等
# 提示:同时用 enumerate() 和 zip()

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

相关推荐
江瀚视野1 分钟前
小马智行发布PonyWorld世界模型2.0,如何改变市场?
人工智能
XM_jhxx4 分钟前
厦门晚报报道简会入选省首批“小快轻准”数字化产品
大数据·人工智能
Ivanqhz4 分钟前
SMT(Satisfiability Modulo Theories,基于模理论的可满足性)
人工智能·算法·机器学习
ZGi.ai6 分钟前
一个LLM网关需要处理哪些工程问题?多模型路由与成本归因实战
大数据·网络·人工智能
BioRunYiXue7 分钟前
AlphaGenome:DeepMind 新作,基因组学迎来 Alpha 时刻
java·linux·运维·网络·数据库·人工智能·eclipse
有意义11 分钟前
深入理解浏览器存储方案:从Cookie到JWT登录认证
前端·面试·浏览器
STRUGGLE_xlf11 分钟前
产品经理的 Claude Code 免费教程——模块 3:Nano Banana(AI 图像生成)
人工智能·产品经理
却道天凉_好个秋11 分钟前
pytorch(一):张量
人工智能·pytorch·python·深度学习
搞科研的小刘选手13 分钟前
【高届数人文社科会议】第十二届人文学科和社会科学研究国际学术会议(ICHSSR 2026)
大数据·人工智能·电子信息·电子工程·学术会议·信息工程·电路工程
0xDevNull15 分钟前
现代AI系统架构全景解析
人工智能·系统架构