3-列表简介

列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。

3.1 列表是什么

列表由一系列按特定顺序排列的元素组成。

给列表指定一个表示复数的名称。

在Python中,用方括号([])表示列表,并用逗号分隔其中的元素。

例如:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']

Python将打印列表的内部表示,包括方括号。 

3.1.1 访问列表元素

访问列表元素,可指出列表的名称,再指出元素的索引,并将后者放在方括号内。

例如:bicycles[0]

3.1.2 索引从0而不是1开始

在Python中,第一个列表元素的索引为0,而不是1。

通过将索引指定为-1,可让Python返回最后一个列表元素,这种约定也适用于其他负数索引。

3.1.3 使用列表中的各个值

你可以像使用其他变量一样使用列表中的各个值。

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"My first bicycle was a {bicycles[0].title()}."

print(message)

动手试一试

请尝试编写一些简短的程序来完成下面的练习,以获得一些使用Python列表的第一手经验。你可能需要为每章创建一个文件夹,以整洁有序的方式存储为完成各章的练习而编写的程序。

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

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

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

3.2 修改、添加和删除元素

3.2.1 修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。

示例:bicycles[0]=‘捷安特’

3.2.2 在列表中添加元素

在列表末尾添加元素:方法append(元素)

示例:motorcycles.append('jialing')

在列表中插入元素:使用方法insert(索引,元素)可在列表的任何位置添加新元素

示例:motorcycles.insert(0,'longxin')

3.2.3 从列表中删除元素

使用del语句删除元素:del motorcycles[1]

使用方法pop()删除元素:方法pop()删除列表末尾的元素,并让你能够接着使用它。

弹出列表中任何位置处的元素:motorcycles.pop(索引)

根据值删除元素:方法remove(值)只删除第一个指定的值,too_expensive = 'ducati'
motorcycles.remove(too_expensive)

动手试一试

下面的练习比第2章的练习要复杂些,但让你有机会以前面介绍过的各种方式使用列表。

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

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

练习3-6:添加嘉宾 你刚找到了一个更大的餐桌,可容纳更多的嘉宾。请想想你还想邀请哪三位嘉宾。

▲ 以完成练习3-4或练习3-5时编写的程序为基础,在程序末尾添加一条print语句,指出你找到了一个更大的餐桌。▲ 使用insert()将一位新嘉宾添加到名单开头。▲ 使用insert()将另一位新嘉宾添加到名单中间。▲ 使用append()将最后一位新嘉宾添加到名单末尾。▲ 打印一系列消息,向名单中的每位嘉宾发出邀请。

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

3.3 组织列表

3.3.1 使用方法sort()对列表永久排序

升序:列表.sort()

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)

反转:列表.sort(reverse=true)

cars.sort(reverse=True)

3.3.2 使用函数sorted()对列表临时排序

print(sorted(cars))

 反转也用参数reverse=true

3.3.3 倒着打印列表

要反转列表元素的排列顺序,可使用方法reverse():cars.reverse()

3.3.4 确定列表的长度

使用函数len()可快速获悉列表的长度。

动手试一试

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

练习3-9:晚餐嘉宾 在完成练习3-4~练习3-7时编写的程序之一中,使用len()打印一条消息,指出你邀请了多少位嘉宾来共进晚餐。练习3-10:尝试使用各个函数 想想可存储到列表中的东西,如山川、河流、国家、城市、语言或你喜欢的任何东西。编写一个程序,在其中创建一个包含这些元素的列表,然后,对于本章介绍的每个函数,都至少使用一次来处理这个列表。

3.4 使用列表时避免索引错误

索引超出索引范围时,就会发生索引错误。

Traceback (most recent call last):
  File "E:\...\motorcycles.py", line 12, in <module>
    print(motorcycles[9])
IndexError: list index out of range

 或者当列表为空时,使用索引-1去访问最后一个元素时。

Traceback (most recent call last):
  File "E:\...\motorcycles.py", line 12, in <module>
    print(motorcycles[-1])
IndexError: list index out of range

注意 发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。列表可能与你以为的截然不同,在程序对其进行了动态处理时尤其如此。通过查看列表或其包含的元素数,可帮助你找出这种逻辑错误。

动手试一试

练习3-11:有意引发错误 如果你还没有在程序中遇到过索引错误,就尝试引发一个这种错误。在你的一个程序中,修改其中的索引,以引发索引错误。关闭程序前,务必消除这个错误。

3.5 小结

在本章中,你学习了:列表是什么以及如何使用其中的元素;如何定义列表以及如何增删元素;如何对列表进行永久性排序,以及如何为展示列表而进行临时排序;如何确定列表的长度,以及在使用列表时如何避免索引错误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值