3.列表
- 列表由一系列按特定顺序排列的元素组成,list是一种有序的集合,可以随时添加和删除其中的元素
- 列表的格式:列表是用方括号[]来表示,中间的元素用逗号(,)隔开
# 简单的列表 bicycles = [‘trek‘,‘cannondale‘,‘Redline‘,‘specialized‘] print(bicycles) # 打印的时候会连[]也打印出来
[‘trek‘, ‘cannondale‘, ‘Redline‘, ‘specialized‘]
3.1.1 访问列表的元素
- 要访问列表的任何元素,可指出列表的名称,在指出元素的索引,并将其放在方括号[]内
# 当我们访问列表的元素时,python只会返回列表的元素,而不会包含中括号或者引号 print(bicycles[0]) print(len(bicycles)) print(bicycles[3].title()) # 打印出索引为3的元素,并将它的首字母改为大写
trek 4 Specialized
3.1.2 索引的位置
- 在python里面,列表的第一个元素的位置是0,而不是1;
- 最后一个元素的索引是n-1或者直接使用-1来表示;
# 反问列表bicycles的第2个和第3个元素 print(bicycles[1].upper()) print(bicycles[2].lower())
CANNONDALE redline
3.1.3 使用列表中的值
# 使用拼接来创建一条消息 bicycles = ["trek",‘cannondale‘,‘redline‘,"specialized"] message = "My first bicycle was a" + ‘ ‘ + bicycles[2].title() + ‘.‘ print(message)
My first bicycle was a Redline.
动手试一试
# 3-1 姓名: 将一些朋友的姓名存储在一个列表中,并将其命名为 names。依次访问该列表中的每个元素,从而将每个朋友的姓名都打印出来。 names = [‘Bob‘,‘lucy‘,‘mary‘] print(names[0]) print(names[-2]) print(names[-1].title())
Bob lucy Mary
# 3-2 问候语: 继续使用练习 3-1 中的列表,但不打印每个朋友的姓名,而为每人打印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。 print(names[0],‘,‘,‘让我们一起去吃饭吧!‘) print(names[1],‘,‘,"让我们一起去吃饭吧!") print(names[-1].title(),‘,‘,‘让我们一起去吃饭吧!‘)
Bob , 让我们一起去吃饭吧! lucy , 让我们一起去吃饭吧! Mary , 让我们一起去吃饭吧!
3.2 修改丶添加和删除元素
3.2.1 修改列表元素
- 要修改列表元素,可指定列表名和要修改的元素的索引,在指定该元素的新值
motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles[0] = "ducati" print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘ducati‘, ‘yamaha‘, ‘suzuki‘]
3.2.2 在列表中添加元素
- 1.在列表末尾添加元素我们使用append()
- 2.使用方法insert()在任何位置添加新元素
# 使用append添加元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles.append("ducati") print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘]
# 使用insert()添加元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) motocycles.insert(0,‘ducati‘) # 列表名.insert(索引位置,添加的元素) print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘ducati‘, ‘honda‘, ‘yamaha‘, ‘suzuki‘]
3.2.3 从列表中删除元素
- 知道索引位置删除列表元素
- 1.知道需要删除元素的索引,使用del语句删除元素,被删除的值我们将无法再访问
- 2.使用方法pop()删除元素,只需要在()内指定被删除的元素的索引位置,被删除的值我们可以再度使用.如果括号内没有索引位置则删除的是列表最后的一个元素.
# del语句删除列表元素 del 列表名(索引位置) motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) del motocycles[0] print(motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘yamaha‘, ‘suzuki‘]
# 方法pop()删除列表末尾的元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) poped_motocycles = motocycles.pop() # 把删除的元素存储在变量poped_motocycles里面 print(motocycles) print(poped_motocycles)
[‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘honda‘, ‘yamaha‘] suzuki
# 使用方法pop()删除列表指定位置的元素 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘] print(motocycles) first_motocycles = motocycles.pop(0) # 把索引为0的元素删除并把值存放在变量first_motocycles print("The first motocycles I owned was a" +‘ ‘ + first_motocycles.title())
[‘honda‘, ‘yamaha‘, ‘suzuki‘] The first motocycles I owned was a Honda
- 根据值删除元素
- 不知道元素的索引,但是知道元素的值,我们使用方法remove()
# 从列表中删除元素为ducati motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘,‘ducati‘] print(motocycles) motocycles.remove(‘ducati‘) print(motocycles) # 使用remove删除的值也可以继续接着使用 motocycles = [‘honda‘,‘yamaha‘,‘suzuki‘,‘ducati‘] print(motocycles) too_motocycles = ‘ducati‘ motocycles.remove(too_motocycles) print(motocycles) print("A" + ‘ ‘ + too_motocycles + "is too expensive for me.")
[‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘] [‘honda‘, ‘yamaha‘, ‘suzuki‘] [‘honda‘, ‘yamaha‘, ‘suzuki‘, ‘ducati‘] [‘honda‘, ‘yamaha‘, ‘suzuki‘] A ducatiis too expensive for me.
动手试一试
‘‘‘3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐,请创建一个列表,其中包含至少3个你想邀请的人;然后,使用这个列表打印消息,邀请这些人来与你共进晚餐。‘‘‘ dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(dinners[0] + "," + ‘让我们一起吃晚餐吧!‘) print(dinners[1] + "," + "让我们一起共进晚餐吧!") print(dinners[-1] + ‘,‘ + "让我们一起吃晚餐吧!") dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(str(dinners) + ‘,‘,‘让我们一起吃晚餐吧!‘)
Li_yang,让我们一起吃晚餐吧! Wu_yong,让我们一起共进晚餐吧! Zhang_san,让我们一起吃晚餐吧! [‘Li_yang‘, ‘Wu_yong‘, ‘Zhang_san‘], 让我们一起吃晚餐吧!
‘‘‘3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。 ? 以完成练习 3-4 时编写的程序为基础,在程序末尾添加一条 print 语句,指出哪 位嘉宾无法赴约。‘‘‘ dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] print(str(dinners) + ‘,‘,‘让我们一起吃晚餐吧!‘) print("我刚刚知道" + dinners[1]+ "不能来了") # ? 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。 dinners = [‘Li_yang‘,‘Wu_yong‘,‘Zhang_san‘] dinners[1] = ‘Li_si‘ print(dinners) # ? 再次打印一系列消息,向名单中的每位嘉宾发出邀请 print("{0}".format(dinners) + "让我们一起吃晚饭吧")
[‘Li_yang‘, ‘Wu_yong‘, ‘Zhang_san‘], 让我们一起吃晚餐吧! 我刚刚知道Wu_yong不能来了 [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘]让我们一起吃晚饭吧
‘‘‘3-6 ? 以完成练习 3-4 或练习 3-5 时编写的程序为基础,在程序末尾添加一条 print 语 句,指出你找到了一个更大的餐桌‘‘‘ dinners = [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] for dinner in dinners: print("{0}".format(dinner) + ‘,‘ + "让我们一起吃晚餐吧!") print("我找到了一张更大的餐桌") # 使用 insert()将一位新嘉宾添加到名单开头. dinners = [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] print(dinners) dinners.insert(0,‘Wang_wu‘) print(dinners) # ? 使用 insert()将另一位新嘉宾添加到名单中间。 dinners.insert(2,‘Wu_yong‘) print(dinners) # ? 使用 append()将最后一位新嘉宾添加到名单末尾。 dinners.append(‘Fang_jiu‘) print(dinners)
Li_yang,让我们一起吃晚餐吧! Li_si,让我们一起吃晚餐吧! Zhang_san,让我们一起吃晚餐吧! 我找到了一张更大的餐桌 [‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] [‘Wang_wu‘, ‘Li_yang‘, ‘Li_si‘, ‘Zhang_san‘] [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘] [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘]
# 3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。 ‘‘‘ ? 使用 pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹 出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进 晚餐。‘‘‘ dinners = [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘] dinners_01 = dinners.pop() print(dinners_01 + ‘,‘ + "我无法邀请你来吃饭了!") dinners_02 = dinners.pop(0) print(dinners_02 + ‘,‘ + "我无法邀请你来吃饭了!") dinners_03 = dinners.pop(1) print(dinners_03 + ‘,‘ + "我无法邀请你来吃饭了!") dinners_04 = dinners.pop(2) print(dinners_04 + ‘,‘ + "我无法邀请你来吃饭了!") print(dinners) # ? 对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。 dinners01 = dinners[0] dinners02 = dinners[1] print(dinners01 + ‘,‘ + "你依然在受邀之列") print(dinners02 + ‘,‘ + "你依然在受邀之列") # ? 使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程序结束时名单确实是空的 del dinners[0] del dinners[-1] print(dinners)
Fang_jiu,我无法邀请你来吃饭了! Wang_wu,我无法邀请你来吃饭了! Wu_yong,我无法邀请你来吃饭了! Zhang_san,我无法邀请你来吃饭了! [‘Li_yang‘, ‘Li_si‘] Li_yang,你依然在受邀之列 Li_si,你依然在受邀之列 []
3.3 组织列表
- 1.使用方法sort()对列表进行永久排序
- 2.使用函数sorted()对列表进行临时排序
# sort()对列表排序 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] print(cars) cars.sort() print(cars) # 对sort()传入参数使列表按与字母顺序相反的顺序排列 cars.sort(reverse = True) print(cars) cars.sort(reverse = False) print(cars)
[‘bmw‘, ‘audi‘, ‘toyota‘, ‘subaru‘] [‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘] [‘toyota‘, ‘subaru‘, ‘bmw‘, ‘audi‘] [‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘]
# 使用sorted()对列表进行排序 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] sorted_cars = sorted(cars) print(cars) print(sorted_cars)
[‘bmw‘, ‘audi‘, ‘toyota‘, ‘subaru‘] [‘audi‘, ‘bmw‘, ‘subaru‘, ‘toyota‘]
3.3.3 倒着打印列表
- 要反转列表元素的排列顺序,我们是使用方法reverse()
# 倒着打印列表 cars = [‘bmw‘,‘audi‘,‘toyota‘,‘subaru‘] cars.reverse() print(cars)
[‘subaru‘, ‘toyota‘, ‘audi‘, ‘bmw‘]
3.3.4 确定列表的长度
- 使用len()可以确定列表有多少个元素
cars = [‘bmw‘,‘sudi‘,‘toyota‘,‘subaru‘] print(len(cars))
4
动手试一试
‘‘‘3-8 放眼世界:想出至少 5 个你渴望去旅游的地方。 ? 将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。‘‘‘ toursim = [‘beijing‘,‘tokyo‘,‘usa‘,‘lijiang‘,‘kunming‘] # ? 按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始Python 列表。 print(toursim) # ? 使用 sorted()按字母顺序打印这个列表,同时不要修改它。 sorted_toursim = sorted(toursim) print(sorted_toursim) # ? 再次打印该列表,核实排列顺序未变。 print(toursim) # ? 使用 sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。 sorsted_toursim = sorted(toursim,reverse = True) print(sorted_toursim)
[‘beijing‘, ‘tokyo‘, ‘usa‘, ‘lijiang‘, ‘kunming‘] [‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘] [‘beijing‘, ‘tokyo‘, ‘usa‘, ‘lijiang‘, ‘kunming‘] [‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘]
# ? 再次打印该列表,核实排列顺序未变。 print(toursim) # ? 使用 reverse()修改列表元素的排列顺序。 打印该列表, 核实排列顺序确实变了。 toursim.reverse() print(toursim) # ? 使用 reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来的排列顺序。 toursim.reverse() print(toursim) # ? 使用 sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺序确实变了。 toursim.sort() print(toursim) # ? 使用 sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,核实排列顺序确实变了。 toursim.sort(reverse = True) print(toursim) # 3-9 晚餐嘉宾:在完成练习 3-4~练习 3-7 时编写的程序之一中,使用 len()打印一条消息,指出你邀请了多少位嘉宾来与你共进晚餐。 dinners = [‘Wang_wu‘, ‘Li_yang‘, ‘Wu_yong‘, ‘Li_si‘, ‘Zhang_san‘, ‘Fang_jiu‘] print(len(dinners))
[‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘] [‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘] [‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘] [‘beijing‘, ‘kunming‘, ‘lijiang‘, ‘tokyo‘, ‘usa‘] [‘usa‘, ‘tokyo‘, ‘lijiang‘, ‘kunming‘, ‘beijing‘] 6
原文地址:https://www.cnblogs.com/Pythonahy/p/10222974.html
时间: 2024-10-08 17:36:18