|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 极品召唤兽 于 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() 函数将其转化为列表。
|
|