python的基础03 列表list

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

猜你喜欢

转载自www.cnblogs.com/Pythonahy/p/10222974.html