一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。
声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。
第十三关:列表进阶
练习:体育成绩排名
group1 = [198, 133, 154, 166]
group2 = [188, 172, 119, 142]
group3 = [168, 153, 131, 128]
# 将三组的成绩合并到一起,列表可以直接相加,所有元素合在一起
group = group1 + group2 + group3
答案用all_students 作为新列表的名称,可读性比较好
# 对合并后的成绩从高到低排序
group.sort() #排序,但是默认是由小到大的
group.reverse() # 反转,由于要求是由高到低的,所以这里需要反转
# 排序、反转等操作,直接在原列表名称后面加上命令即可,不用赋值给新的变量
# 将合并后的成绩用数字枚举出来,并转换成列表放进 run_rank 中
run_rank = list(enumerate(group, 1)) #枚举默认是从0开始,所以要指定从1 开始
枚举的结果要用list转成列表,这个在开始的时候我忘记了
# 打印最后的排名和成绩
print(run_rank)
练习:元组修改
willow = (
'粉堕百花州,',
'香残燕子楼。',
'一团团逐对成逑。',
'飘泊亦如人命薄,',
'空缱绻,',
'说风流。',
'草木也知愁,',
'韶华竟百头!',
'叹今生谁舍谁收?',
'嫁与东风春不管。',
'凭尔去,',
'忍淹留。'
)
# 找出错句的位置
wrong_index = willow.index('韶华竟百头!')
# 将元组转成列表以便改动
willow_list = list(willow)
# 利用索引,将列表中错句改对
willow_list[7] = '韶华竟白头!'
# 重新转换回元组
willow = tuple(willow_list)
# 打印修改正确的元组
print(willow)
修改元组的内容,先要用list()函数将元组转化成列表
操作完成之后,可以用tuple()函数再将结果转化成元组
练习:列表扩展操作
《红楼梦》是我们四大名著之一,也是我国文学史上是最巅峰之作。作者是曹雪芹先生,也是贾宝玉的原型。
我们知道,四大名著的其它三本分别是罗贯中的《三国演义》,施耐庵的《水浒传》,以及吴承恩的《西游记》。
我们用两个列表来分别储存书名和作者:
books = ['红楼梦', '三国演义', '水浒传', '西游记']
authors = ['曹雪芹', '罗贯中', '施耐庵', '吴承恩']
你可以用我们刚刚学过的知识,将书名和作者绑定起来吗?
另外,在小贝心目中,四大名著的地位排序是:《三国演义》《西游记》《红楼梦》《水浒传》,他将四本书按他心目中的顺序录进了列表 books_favorite 中。我们能用用刚刚学过的代码帮他对 books_favorite 进行操作,附上数字表示的排名吗?
要求:
1 用 zip() 函数将 books 和 authors 以“著作名,作者”的形式结合成新列表。并将结果打印在屏幕上。
2 新建 books_favorite 列表,按小贝喜爱的顺序排列四本书。
3 用 enumerate() 函数,从 1 开始,枚举 books_favorite 列表,将结果打印在屏幕上。
books = ['红楼梦', '三国演义', '水浒传', '西游记']
authors = ['曹雪芹', '罗贯中', '施耐庵', '吴承恩']
# 用 zip() 将两个列表绑定
zipped = zip(books, authors)
# 转换回列表后打印绑定结果
print(list(zipped))
# 新建 books_favorite 列表,顺序按小贝的喜好来
books_favorite = ['三国演义', '西游记', '红楼梦', '水浒传']
# 用 enumerate() 函数枚举结果,从 1 开始
books_favorite_count = enumerate(books_favorite, 1)
# 转换回列表后打印结果
print(list(books_favorite_count))
注意zip()和enumerate()运行结果要用list()转为列表
网友评论