Python--列表

Python--列表

列表是什么

列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或
所有家庭成员姓名的列表;

在python中使用([])来表示列表,并且使用逗号来分割其中的元素.

bicycles=['trek','cannondale','redline','specialized']
print(bicycles)
# ['trek', 'cannondale', 'redline', 'specialized']

如何访问列表元素

bicycles=['trek','cannondale','redline','specialized']
print(bicycles[0])
print(bicycles[0].title())
# trek
# Trek

列表索引

python中的列表索引和其他编程语言类似,都是从索引0开始的.所以要访问第4个元素的话索引应该是3.

bicycles=['trek','cannondale','redline','specialized']
print(bicycles[1])
print(bicycles[3])
# cannondale
# specialized

如果要访问最后一个列表元素的话可以使用索引-1.索引-2返回倒数第二个列表元素.索引-3返回第三个列表元素.这样就可以更快的访问列表最后的元素.

bicycles=['trek','cannondale','redline','specialized']
print(bicycles[-1])
# specialized

列表中的值的使用

列表中的值可以当作字符串来使用

bicycles=['trek','cannondale','redline','specialized']
message="my favorite bicycle was a "+bicycles[0].title()+'.';
print(message)
# my favorite bicycle was a Trek.

3-1 姓名:将一些朋友的姓名存储在一个列表中,并将其命名为 names。依次访问
该列表中的每个元素,从而将每个朋友的姓名都打印出来。

name=['harper','mike','joke']
print(name[0].title())
print(name[1].title())
print(name[-1].title())
# Harper
# Mike
# Joke

3-2 问候语:继续使用练习 3-1 中的列表,但不打印每个朋友的姓名,而为每人打
印一条消息。每条消息都包含相同的问候语,但抬头为相应朋友的姓名。

name=['harper','mike','joke']
print('Hello '+name[0].title())
print('Hi '+name[1].title())
print('Hi '+name[-1].title())
# Hello Harper
# Hi Mike
# Hi Joke

3-3 自己的列表:想想你喜欢的通勤方式,如骑摩托车或开汽车,并创建一个包含
多种通勤方式的列表。根据该列表打印一系列有关这些通勤方式的宣言,如“I would like
to own a Honda motorcycle”。

name=['汽车','自行车','卡车','公交车']
print('我经常乘坐'+name[-1]+'去上学')
print('去驾校练习'+name[0]+'的行驶')
print('我可以熟练的使用'+name[1])
# 我经常乘坐公交车去上学
# 去驾校练习汽车的行驶
# 我可以熟练的使用自行车

列表的增删改

列表是动态的类似一个动态的数组

我们可用通过下标很轻松的修改列表中的元素

name=['汽车','自行车','卡车','公交车']
print('我经常乘坐'+name[-1]+'去上学')
name[-1]='公共汽车'
print('我经常乘坐'+name[-1]+'去上学')
# 我经常乘坐公交车去上学
# 我经常乘坐公共汽车去上学

在末尾添加元素使用append()函数即可

name=['汽车','自行车','卡车','公交车']
print(name)
name.append('地铁')
print(name)
# ['汽车', '自行车', '卡车', '公交车']
# ['汽车', '自行车', '卡车', '公交车', '地铁']

可以先创建一个新的列表然后轻松的通过append创建列表.

name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
print(name)
# ['汽车', '自行车', '卡车', '公交车', '地铁']

在列表中插入元素使用insert()函数,如果将元素插入0这个位置那么原本的元素都要向后移动一个元素.

name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
print(name)
name.insert(0,'高铁')
print(name)
# ['汽车', '自行车', '卡车', '公交车', '地铁']
# ['高铁', '汽车', '自行车', '卡车', '公交车', '地铁']

使用del方法删除任意位置的元素

name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
name.insert(0,'高铁')
print(name)
del name[0]
print(name)
# ['高铁', '汽车', '自行车', '卡车', '公交车', '地铁']
# ['汽车', '自行车', '卡车', '公交车', '地铁']

使用pop()删除列表的元素.同时在调用pop()方法的时候会有一个返回值,这个返回值就是将要弹出的那个值.

name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
print(name)
last=name.pop();
print(name)
print(last)
# ['汽车', '自行车', '卡车', '公交车', '地铁']
# ['汽车', '自行车', '卡车', '公交车']
# 地铁
name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
print(name)
temp=name.pop(0)
print(name)
print(temp)
# ['汽车', '自行车', '卡车', '公交车', '地铁']
# ['自行车', '卡车', '公交车', '地铁']
# 汽车

根据remove()方法来根据俩表中的元素来删除元素

name=[]
name.append('汽车')
name.append('自行车')
name.append('卡车')
name.append('公交车')
name.append('地铁')
print(name)
a='汽车'
print('接下来我们将删除'+a)
name.remove(a)
print(name)
# ['汽车', '自行车', '卡车', '公交车', '地铁']
# 接下来我们将删除汽车
# ['自行车', '卡车', '公交车', '地铁']

方法remove()只删除第一个指定的值。。如果要删除的值可能在列表中出现多次,就需要
使用循环来判断是否删除了所有这样的值。

3-4 嘉宾名单:如果你可以邀请任何人一起共进晚餐(无论是在世的还是故去的),
你会邀请哪些人?请创建一个列表,其中包含至少 3 个你想邀请的人;然后,使用这个
列表打印消息,邀请这些人来与你共进晚餐。

3-5 修改嘉宾名单:你刚得知有位嘉宾无法赴约,因此需要另外邀请一位嘉宾。
以完成练习 3-4 时编写的程序为基础,在程序末尾添加一条 print 语句,指出哪
位嘉宾无法赴约。
修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾的姓名。
再次打印一系列消息,向名单中的每位嘉宾发出邀请。
3-6 添加嘉宾:你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀
请哪三位嘉宾。

person = ['张三', '李四', '王五']
print('我想要邀请' + str(person) + '来参加聚会')
print('但是' + person[-1] + '有事情来不来替换成小黑来参加')
person[-1] = '小黑'
print('我想要邀请' + str(person) + '来参加聚会')
print('我找到了一个更大的餐桌。')
person.insert(0, '小白')
print('现在我想要邀请' + str(person) + '来参加聚会')
# 我想要邀请['张三', '李四', '王五']来参加聚会
# 但是王五有事情来不来替换成小黑来参加
# 我想要邀请['张三', '李四', '小黑']来参加聚会
# 我找到了一个更大的餐桌。
# 现在我想要邀请['小白', '张三', '李四', '小黑']来参加聚会
person.insert(1, '小白')
print('现在我想要邀请' + str(person) + '来参加聚会')
# 现在我想要邀请['张三', '小白', '李四', '小黑']来参加聚会
person.append('小白')
print('现在我想要邀请' + str(person) + '来参加聚会')
# 现在我想要邀请['张三', '小白', '李四', '小黑']来参加聚会

3-7 缩减名单:你刚得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾。
以完成练习 3-6 时编写的程序为基础,在程序末尾添加一行代码,打印一条你只
能邀请两位嘉宾共进晚餐的消息。
使用 pop()不断地删除名单中的嘉宾,直到只有两位嘉宾为止。每次从名单中弹
出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进
晚餐。
对于余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列。
使用 del 将最后两位嘉宾从名单中删除,让名单变成空的。打印该名单,核实程
序结束时名单确实是空的。

person = ['张三', '李四', '王五']
print('我想要邀请' + str(person) + '来参加聚会')
print('但是' + person[-1] + '有事情来不来替换成小黑来参加')
person[-1] = '小黑'
print('我想要邀请' + str(person) + '来参加聚会')
print('我找到了一个更大的餐桌。')

person.append('小白')
print('现在我想要邀请' + str(person) + '来参加聚会')
# 现在我想要邀请['张三', '小白', '李四', '小黑']来参加聚会
print('现在我只能要求两位来聚会')
print("很抱歉不能让"+person.pop()+"来参加晚餐了")
print("很抱歉不能让"+person.pop()+"来参加晚餐了")
print("我将会邀请"+person[0]+"参加晚餐")
print("我将会邀请"+person[1]+"参加晚餐")
del person[0]
del person[0]
print("下面列表为空")
print(person)
# 我想要邀请['张三', '李四', '王五']来参加聚会
# 但是王五有事情来不来替换成小黑来参加
# 我想要邀请['张三', '李四', '小黑']来参加聚会
# 我找到了一个更大的餐桌。
# 现在我想要邀请['张三', '李四', '小黑', '小白']来参加聚会
# 现在我只能要求两位来聚会
# 很抱歉不能让小白来参加晚餐了
# 很抱歉不能让小黑来参加晚餐了
# 我将会邀请张三参加晚餐
# 我将会邀请李四参加晚餐
# 下面列表为空
# []

使用sort()对列表进行字典序永久性修改排序.

cars=['bmw','toyota','audi','tesla']
print(cars)
cars.sort()
print(cars)
# 从大到小排序
cars.sort(reverse=True)
print(cars)
# ['bmw', 'toyota', 'audi', 'tesla']
# ['audi', 'bmw', 'tesla', 'toyota']
# ['toyota', 'tesla', 'bmw', 'audi']

如果向保留列表中原本的元素的顺序,同时想要看到这些列表排列之后的顺序.但是不影响原本在列表中的排列顺序.可用sorted()函数.并不改变原本列表的值

cars=['bmw','toyota','audi','tesla']
print(cars)
print(sorted(cars))
print(cars)
# ['bmw', 'toyota', 'audi', 'tesla']
# ['audi', 'bmw', 'tesla', 'toyota']
# ['bmw', 'toyota', 'audi', 'tesla']

reverse()方法永久性的反转列表当中的元素

cars=['bmw','toyota','audi','tesla']
print(cars)
cars.reverse()
print(cars)
# ['bmw', 'toyota', 'audi', 'tesla']
# ['tesla', 'audi', 'toyota', 'bmw']

使用len方法来确定列表的长度

cars = ['bmw', 'toyota', 'audi', 'tesla']
print("列表的长度为" + str(len(cars)))
# 列表的长度为4

3-8 放眼世界:想出至少 5 个你渴望去旅游的地方。
将这些地方存储在一个列表中,并确保其中的元素不是按字母顺序排列的。
按原始排列顺序打印该列表。不要考虑输出是否整洁的问题,只管打印原始
Python 列表。
使用 sorted()按字母顺序打印这个列表,同时不要修改它。
再次打印该列表,核实排列顺序未变。
使用 sorted()按与字母顺序相反的顺序打印这个列表,同时不要修改它。
再次打印该列表,核实排列顺序未变。
使用 reverse()修改列表元素的排列顺序。打印该列表,核实排列顺序确实变了。
使用 reverse()再次修改列表元素的排列顺序。打印该列表,核实已恢复到原来
的排列顺序。
使用 sort()修改该列表,使其元素按字母顺序排列。打印该列表,核实排列顺
序确实变了。
使用 sort()修改该列表,使其元素按与字母顺序相反的顺序排列。打印该列表,
核实排列顺序确实变了。

place = ['南京', '苏州', '徐州', '合肥', '深圳']
print(place)
print(sorted(place))
print(place)
print(sorted(place, reverse=True))
print(place)
# 将数组反转
place.reverse()
print(place)
place.reverse()
print(place)
place.sort()
print(place)
place.sort(reverse=True)
print(place)
# ['南京', '苏州', '徐州', '合肥', '深圳']
# ['南京', '合肥', '徐州', '深圳', '苏州']
# ['南京', '苏州', '徐州', '合肥', '深圳']
# ['苏州', '深圳', '徐州', '合肥', '南京']
# ['南京', '苏州', '徐州', '合肥', '深圳']
# ['深圳', '合肥', '徐州', '苏州', '南京']
# ['南京', '苏州', '徐州', '合肥', '深圳']
# ['南京', '合肥', '徐州', '深圳', '苏州']
# ['苏州', '深圳', '徐州', '合肥', '南京']

3-9 晚餐嘉宾:在完成练习 3-4~练习 3-7 时编写的程序之一中,使用 len()打印一
条消息,指出你邀请了多少位嘉宾来与你共进晚餐。

person=['小黑','小白']
print('我邀请了'+str(len(person))+'人来参加晚餐')
# 我邀请了2人来参加晚餐

3-10 尝试使用各个函数:想想可存储到列表中的东西,如山岳、河流、国家、城
市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,
然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。

obj = ['中国', '喜马拉雅山', '长江']
print(obj)
obj.append('黄河')
obj.insert(0, '泰山')
print(obj)
del obj[1]
print(obj)
temp = obj.pop()
print('弹出的最后一个元素是' + temp)
print(obj)
print('删除元素泰山')
obj.remove('泰山')
print(obj)
obj.insert(1, '南京')
obj.append('英语')
print(obj)
obj.sort()
print(obj)
obj.sort(reverse=True)
print(obj)
print('列表的长度为' + str(len(obj)))
obj.reverse()
print(obj)
# ['中国', '喜马拉雅山', '长江']
# ['泰山', '中国', '喜马拉雅山', '长江', '黄河']
# ['泰山', '喜马拉雅山', '长江', '黄河']
# 弹出的最后一个元素是黄河
# ['泰山', '喜马拉雅山', '长江']
# 删除元素泰山
# ['喜马拉雅山', '长江']
# ['喜马拉雅山', '南京', '长江', '英语']
# ['南京', '喜马拉雅山', '英语', '长江']
# ['长江', '英语', '喜马拉雅山', '南京']
# 列表的长度为4
# ['南京', '喜马拉雅山', '英语', '长江']

使用列表的时候避免索引越界

# 错误代码演示
obj = ['中国', '喜马拉雅山', '长江']
print(obj[3])
# 错误代码演示
obj = []
print(obj[-1])
posted @ 2024-02-13 22:09  harper886  阅读(16)  评论(0编辑  收藏  举报