有一位程序员小张,他正在为公司的一个项目编写代码。这个项目需要处理两个列表,一个是存储了学生姓名的列表,另一个是存储了学生成绩的列表。
小张需要把这两个列表对应的元素组合起来,最终得到一个包含了姓名和成绩的列表。小张在查阅了Python的文档之后,决定使用`zip`函数来完成这个任务。
于是,他编写了以下的代码:
```
names = ["张三", "李四", "王五"]
scores = [90, 85, 95]
result = zip(names, scores)
for r in result:
print(r)
```
小张很高兴地发现,`zip`函数能够将两个列表按照相同的索引位置组合在一起,输出了这样的结果:
```
('张三', 90)
('李四', 85)
('王五', 95)
```
但是,小张发现这个结果并没有包含每个元素的索引位置,因为在这个项目里他需要知道每个学生的排名。于是,他又开始查阅Python的文档,找到了`enumerate`函数。
小张修改了自己的代码:
```
names = ["张三", "李四", "王五"]
scores = [90, 85, 95]
result = enumerate(zip(names, scores))
for i, r in result:
print("第{}名: {}, 成绩: {}".format(i+1, r[0], r[1]))
```
小张很满意地发现,`enumerate`函数能够为每个元素添加一个索引值,重建了一个包含了姓名、成绩和排名的列表,输出了这样的结果:
```
第1名: 张三, 成绩: 90
第2名: 李四, 成绩: 85
第3名: 王五, 成绩: 95
```
小张成功地完成了这个任务,同时也掌握了`zip`和`enumerate`两个函数的用法。