当前位置:网站首页>3-列表简介
3-列表简介
2022-06-24 06:47:00 【axinawang】
列表让你能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。
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 小结
在本章中,你学习了:列表是什么以及如何使用其中的元素;如何定义列表以及如何增删元素;如何对列表进行永久性排序,以及如何为展示列表而进行临时排序;如何确定列表的长度,以及在使用列表时如何避免索引错误。
边栏推荐
- duilib 显示内存图片
- Unity 的序列化
- Chrono usage notes
- tuple(元组)备注
- 《canvas》之第3章 曲线图形
- Reppoints: Microsoft skillfully uses deformation convolution to generate point sets for target detection, full of creativity | iccv 2019
- Quickly set up PgSQL for serverless
- Smart pointer remarks
- 本地备份和还原 SQL Server 数据库
- Continue to have a fever. Try the asynchronous operation of dart language. The efficiency is increased by 500%
猜你喜欢

Free ICP domain name filing interface

Chapter 3: drawing triangles

ImportError: cannot import name ‘process_pdf‘ from ‘pdfminer.pdfinterp‘错误完全解决

Hongmeng OS development III

关于h5页面苹果手机使用fixed定位tabbar最底部时遮挡内容问题

Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its

调用Feign接口时指定ip

云开发谁是卧底小程序源码

Introduction of model compression tool based on distiller

第 2 篇:绘制一个窗口
随机推荐
Shell script for MySQL real-time synchronization of binlog
Hilbert Huang Transform
UE常用控制臺命令
IndexError: Target 7 is out of bounds.
timer使用备注
Notes on the use of date and time base
爬虫基础B1——Scrapy(B站学习笔记)
Inline element, block element, inline block element
Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its
ImportError: cannot import name ‘process_pdf‘ from ‘pdfminer.pdfinterp‘错误完全解决
开放合作,共赢未来 | 福昕鲲鹏加入金兰组织
科一易错点
Pair class notes
Basics of reptile B1 - scrapy (learning notes of station B)
Common array encapsulation
. No main manifest attribute in jar
How to realize multi protocol video capture and output in video surveillance system?
The startup mode of cloudbase init is \Cloudbase init has hidden dangers
Take my brother to make a real-time Leaderboard
Cold thinking on the hot track: multiplier effect is the fundamental requirement of East West calculation