极品召唤兽 发表于 2020-8-1 17:01:10

Python学习笔记13(2)-----列表高级用法及应用 New!

本帖最后由 极品召唤兽 于 2020-8-2 14:01 编辑

记得一键三连哦QWQ


zip() 函数上场的时间啦。它的作用是将两个长度相同的列表合并起来,相同位置的元素会被一一组对,变成一个元组。结果返回一个组合好的打包对象,需要我们再用 list() 函数转换回列表。

# 用 zip() 将两个列表合并
zipped = zip(midterm_rank, scores)

# 将结果转换回列表后,赋值给 zipped_rank
zipped_rank = list(zipped)

# 来看看结果
print(zipped_rank)
# 输出:[('妙玉', 100), ('薛宝钗', 100), ('贾元春', 96), ('王熙凤', 93), ('林黛玉', 92), ('贾巧姐', 91), ('史湘云', 90), ('贾迎春', 86), ('贾宝玉', 85), ('李纨', 84), ('贾探春', 81), ('秦可卿', 79), ('贾惜春', 77), ('贾琏', 75)]


enumerate() 函数最难的地方,可能不是用法,而是这个函数名……可能是目前我们学起来最难背的英文单词之一啦。

enumerate”单词本身意思是“枚举、数数”。所以对应的函数功能,就是一个一个地将列表中的元素数出来。它返回的是一个枚举对象,也需要我们用 list() 函数转换回列表。

有了这个函数,我们就可以把原来的排名表 midterm_rank 中,每个同学的具体排名都显示出来了。

要注意:机器还是会从 0 开始数……

# 枚举原排名表后,再转回列表的形式
rank_with_id = list(enumerate(midterm_rank))

print(rank_with_id)
# 输出:[(0, '妙玉'), (1, '薛宝钗'), (2, '贾元春'), (3, '王熙凤'), (4, '林黛玉'), (5, '贾巧姐'), (6, '史湘云'), (7, '贾迎春'), (8, '贾宝玉'), (9, '李纨'), (10, '贾探春'), (11, '秦可卿'), (12, '贾惜春'), (13, '贾琏')]

我们可以手动输入起始数字 1,让结果更符合我们的习惯。

# enumerate()中这次有两个参数,一个为排名列表,一个为起始数字。
rank_with_ID = list(enumerate(midterm_rank, 1))

print(rank_with_ID)
# 输出:[(1, '妙玉'), (2, '薛宝钗'), (3, '贾元春'), (4, '王熙凤'), (5, '林黛玉'), (6, '贾巧姐'), (7, '史湘云'), (8, '贾迎春'), (9, '贾宝玉'), (10, '李纨'), (11, '贾探春'), (12, '秦可卿'), (13, '贾惜春'), (14, '贾琏')]
这下舒服了!强迫症被治好!这样,我们一眼就能看到每个人的实际排名了。

实战


books = ['红楼梦', '三国演义', '水浒传', '西游记']
authors = ['曹雪芹', '罗贯中', '施耐庵', '吴承恩']

# 用 zip() 将两个列表绑定
a = zip(books,authors)

# 转换回列表后打印绑定结果
b = list(a)
print(b)

# 新建 books_favorite 列表,顺序按小贝的喜好来
books_favorite = ['三国演义','西游记','红楼梦','水浒传']

# 用 enumerate() 函数枚举结果,从 1 开始
c = list(enumerate(books_favorite,1))

# 转换回列表后打印结果
print(c)

梳理一下今日所学。

在 列表基本运算 一节,我们用 in 判断列表中是否包含某一元素,用 + 将两个列表链接在一起,用 * 将列表元素重复多次生成新列表。

我们学习了新的数据类型——元组,它和列表很相似,但是不支持元素的修改,但支持元素的查询及分片,也支持上面说的三种运算。

zip() 函数 可以合并两个列表,将两个列表中一一对应的元素合并到一个元组中,从而生成一个新的 zip 类型。在 Python 3 中,需要用 list() 函数将上述两种类型转化为列表。

enumerate() 函数 可以给列表中每个元素加上序号,合并到一个元组中,从而生成一个新的 enumerate 类型,同样需要用 list() 函数将其转化为列表。



永恒的蓝色梦想 发表于 2020-8-1 17:02:51

这里没有一键三连

极品召唤兽 发表于 2020-8-1 17:06:11

永恒的蓝色梦想 发表于 2020-8-1 17:02
这里没有一键三连

你看评分按钮的那个大拇指像不像真香的一键三连QWQ

革命年 发表于 2020-8-2 11:24:06

是一键六连

革命年 发表于 2020-8-2 11:24:58

蹭运气

革命年 发表于 2020-8-2 11:25:50

再蹭

极品召唤兽 发表于 2020-8-2 13:49:42

革命年 发表于 2020-8-2 11:25
再蹭

还可以继续蹭哦QWQ

革命年 发表于 2020-8-2 16:30:49

极品召唤兽 发表于 2020-8-2 13:49
还可以继续蹭哦QWQ

哦?

战神貔貅 发表于 2020-8-5 15:01:09

一键三连是啥?

dan维 发表于 2020-8-13 12:15:57

本帖最后由 dan维 于 2020-8-13 12:18 编辑

棒棒

dan维 发表于 2020-8-13 12:21:09

讲的很清晰啊{:10_297:}

极品召唤兽 发表于 2020-8-13 19:40:21

dan维 发表于 2020-8-13 12:21
讲的很清晰啊

{:10_256:}鱼币香不香

hornwong 发表于 2020-8-13 19:44:35

学习

dan维 发表于 2020-8-14 15:47:12

极品召唤兽 发表于 2020-8-13 19:40
鱼币香不香

真香{:10_297:}

心驰神往 发表于 2020-9-27 16:03:28

{:10_334:}

我是辛巴啊 发表于 2020-10-7 00:40:24

收藏了

mydwg130 发表于 2020-10-7 10:44:35

这个有点复杂

普通村民 发表于 2020-10-9 11:07:32

一键三连让我以为走到了某站。

whc3399 发表于 2023-3-2 13:16:56


页: [1]
查看完整版本: Python学习笔记13(2)-----列表高级用法及应用 New!