列表(list)访问列表元素修改、添加、删除列表改变列表顺序列表长度
练习3.1: 姓名
将一些朋友的姓名存储在一个列表中,并将其命名为names。依次访问该列表的每个元素,从而将每个朋友的姓名都打印出来。
31_names.py
names = ["Alice", "Bob", "Cindy"]print(names[0])print(names[1])print(names[2])
练习3.2:问候语
继续使用练习3.1中的列表,但不打印每个朋友的姓名,而是为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。
32_greetings.py
names = ["Alice", "Bob", "Cindy"]print(f'Hello, {names[0]}.')print(f'Hello, {names[1]}.')print(f'Hello, {names[2]}.')
练习3.3:自己的列表
想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的陈述,如下所示。I would like to own a Honda motorcycle.
33_vehicles.py
vehicles=['car','motorcycle','cycle']print(f'I would like to own a {vehicles[0]}.')print(f'I would like to own a {vehicles[1]}.')print(f'I would like to own a {vehicles[2]}.')
建议给列表指定一个表示复数的名称列表索引可以使用负数,表示从后向前数
练习3.4:嘉宾名单
如果你可以邀请任何人一起共进晚餐,你会邀请哪些人?请创建一个列表,其中包含至少三个你想邀请的人,然后使用这个列表打印消息,邀请这些人都来与你共进晚餐。
34_guests.py
guests = ['表格','艺术字']print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')
练习3.5:修改嘉宾名单
你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
- 以完成练习3.4时编写的程序为基础,在程序末尾添加函数调print(),指出哪位嘉宾无法赴约。
- 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
35_change_guest.py
guests = ['表格','艺术字']print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print(f'{guests[1]}无法赴约。')guests[1]='图片'print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')
练习3.6:添加嘉宾
你刚找到了一张更大的餐桌,可容纳更多的嘉宾就座。请想想你还想邀请哪三位嘉宾。以完成练习3.4或练习3.5时编写的程序为基础,在程序末尾添加函数调用print(),指出你找到了一张更大的餐桌。
- 使用insert()将另一位新嘉宾添加到名单中间。
- 使用append()将最后一位新嘉宾添加到名单末尾。
36_more_guests.py
guests = ['表格','艺术字']print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')# 有位嘉宾无法赴约,因此需要另外邀请⼀位嘉宾print(f'{guests[1]}无法赴约。')guests[1]='图片'print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print('我找到了一张更大的餐桌!')# 邀请新嘉宾guests.insert(0,'页眉')guests.insert(2,'图表')guests.append('页脚')print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print(f'{guests[2]},晚上一起吃饭吗?')print(f'{guests[3]},晚上一起吃饭吗?')print(f'{guests[4]},晚上一起吃饭吗?')
练习 3.7:缩短名单
你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
- 以完成练习 3.6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只能邀请两位嘉宾共进晚餐的消息。
- 使用pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知道你很抱歉,无法邀请他来共进晚餐。
- 对于余下两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀之列。
- 使用del将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实名单在程序结束时确实是空的。
37_shrink_guest.py
guests = ['表格','艺术字']print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')# 有位嘉宾无法赴约,因此需要另外邀请⼀位嘉宾print(f'****{guests[1]}无法赴约。****')guests[1]='图片'print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print('****我找到了一张更大的餐桌!****')# 邀请新嘉宾guests.insert(0,'页眉')guests.insert(2,'图表')guests.append('页脚')print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print(f'{guests[2]},晚上一起吃饭吗?')print(f'{guests[3]},晚上一起吃饭吗?')print(f'{guests[4]},晚上一起吃饭吗?')print("****很抱歉,新购买的餐桌无法及时送达,今天只能邀请两位嘉宾了。****")# 删除名单中的客人print(f"{guests.pop()},很抱歉,今天晚上不能一起吃饭了。")print(f"{guests.pop()},很抱歉,今天晚上不能一起吃饭了。")print(f"{guests.pop()},很抱歉,今天晚上不能一起吃饭了。")print(f"{guests[0]},记得今天晚上一起吃饭.")print(f"{guests[1]},记得今天晚上一起吃饭.")# 清空名单del guests[1]del guests[0]print(guests)
列表方法总结1及del语句
| | |
|---|
append(obj) | | |
insert(index,obj) | | index为要插入元素的索引,obj为要插入的元素 |
pop(index=-1) | 弹出列表中的一个元素(默认最后一个),并返回该元素的值 | |
remove(obj) | | |
del list[index] | | |
练习3.8:放眼世界
想出至少5个你想去旅游的地方。
- 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
- 按原始排列顺序打印该列表。不要考虑输出是否整洁,只管打印原始Python列表就好。
- 使用sorted()按字母顺序打印这个列表,不要修改它。
- 使用sorted()按与字母顺序相反的顺序打印这个列表,不要修改它。
- 使用reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
- 使用reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。
- 使用sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。
- 使用sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。
21_simple_message.py
places=['Beijing','London','Paris','New York','Berlin','Rome']print(places)# 临时排序print(sorted(places))print(sorted(places,reverse=True))print(places)# 反转顺序places.reverse()print(places)places.reverse()print(places)# 排序places.sort()print(places)places.sort(reverse=True)print(places)
练习 3.9:晚餐嘉宾
选择你为完成练习 3.4~练习 3.7 而编写的一个程序,在其中使用len()打印一条消息,指出你邀请了多少位嘉宾来共进晚餐。
21_simple_message.py
guests = ['表格','艺术字']print(f'{guests[0]},晚上一起吃饭吗?')print(f'{guests[1]},晚上一起吃饭吗?')print(f'我邀请了{len(guests)}位嘉宾来共进晚餐。')
练习3.10:尝试使用各个函数
想想可存储到列表中的东西,如山川、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表。然后,至少把本章介绍的每个函数都使用一次来处理这个列表。
21_simple_message.py
rivers=['Amazon River','Nile River','Yangtze River','Mississippi River','Yellow River']print(rivers)# 添加元素rivers.append('Volga River')print(rivers)rivers.insert(-2,'Rhine River')print(rivers)# 弹出元素print(rivers.pop(1))print(rivers)# 删除元素rivers.remove('Mississippi River')print(rivers)# 更改列表顺序print(sorted(rivers))rivers.reverse()print(rivers)rivers.sort(reverse=True)print(rivers)# 列表长度print(len(rivers))
列表方法总结2及列表相关函数
| | |
|---|
sort(reverse=False) | | reverse可省略,reverse=True 时降序排列 |
sorted(list,reverse=False) | | reverse可省略,reverse=True 时降序排列 |
reverse() | | |
len(list) | | list |
练习 3.11:有意引发错误
如果你还没有在程序中遇到索引错误,就尝试引发⼀个这种错误吧。在你的⼀个程序中修改索引,以引发索引错误。在关闭程序前,务必消除这种错误。
21_simple_message.py
guests = ['表格','艺术字']print(guests)del guests[0]del guests[1]# 正确# del guests[1]# del guests[0]