百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python入门第4课-列表简介(python列表基础)

off999 2024-10-16 11:20 31 浏览 0 评论

列表能够在一个地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。列表是新手可直接使用的最强大的Python功能之一,它融合了众多重要的编程概念。

4.1 列表是什么

列表由一系列按特定顺序排列的元素组成。由于列表一般包含多个元素,因此列表变量可以使用一个表示复数的名称(如names、counts)来表示。

列表是Python内置的一种数据类型,它是一种有序的集合,可以向列表内添加元素,也可以删除列表中的元素。

在Python中,用方括号 [ ] 来表示列表,并用逗号分隔其中的每个元素。列表内的元素可以是字母、数字、字符串,可以是任何数据类型,比如使用列表列出你喜欢的动物:

animals.py

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

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

4.1.1 访问列表内的元素

列表是有序集合,因此可以使用索引来访问列表中每一个位置的元素,索引从0开始。访问元素的语法为:列表名称[元素的索引值]。例如,要访问上述列表animals中的元素,可以这样来访问:

>>> animals[0]

'cat'

>>> animals[1]

'dog'

>>> animals[2]

'monkey'

>>> animals[3]

'rabbit'

>>> animals[4]

Traceback(most recent call last):

File "<stdin>", line 1, in <module>

IndexError: list index out of range

列表共有4个元素,索引值从0到3,上面最后一行输出出错,原因在于索引值超出了范围,这时,Python会报一个IndexError的错误。列表最后一个元素的索引为len(animals) - 1,len(annimals)计算列表的长度:

>>> len(animals)

4

如果要取得列表的最后一个元素,除了使用索引外,Python还提供了一种特殊语法。通过将索引指定为-1,可以让Python返回列表的最后一个元素:

>>> animasl[-1]

'rabbit'

这种约定也适用于其他负数索引,例如,索引-2返回列表倒数第二个元素,索引-3返回列表倒数第3个元素,以此类推:

>>> animals[-2]

'monkey'

>>> animals[-3]

'dog'

>>> animals[-4]

'cat'

>>> animals[-5]

Traceback(most recent call last):

File "<stdin>", line 1, in <module>

IndexError: list index out of range

当然,列表只有4个元素,倒数第5个就又越界了。

还可以像使用变量一样使用列表中的各个元素,例如:

>>> animals = ['cat','dog','monkey','rabbit']

>>> favorite_animal = "I love " + "animals[1].title() + ",it's my friend."

>>> favorite_animal

I love Dog,it's my friend.

对元素调用方法title(),使元素的首字母大写,然后拼接字符串创建一个消息存储在变量favorite_animal中,然后将其输出。

4.2 修改、添加和删除元素

创建的列表大多数都将是动态的,列表创建后,随着程序的运行,将对列表进行增加和删除元素,或是修改现有元素。例如,创建一个射击游戏,开始时将敌人存储在一个列表中,然后每当消灭一个敌人时,都将其从列表中删除,有敌人增援时,就将其加入到列表中。在整个游戏期间,敌人列表的长度是不断变化的。

4.2.1 向列表中添加元素

向列表中添加元素有多种方法。

第1种方法:在列表末尾添加元素

使用append()方法,可以将元素添加到列表的末尾:

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals.append('pig')

>>> animals

['cat','dog','monkey','rabbit','pig']

事先可以先创建一个空列表,然后使用append()方法向空列表中添加元素。这是一个很常见的方式,例如,创建一个保存注册用户姓名的空列表,在没有用户注册时,列表是空的,当有用户注册时,每一个注册用户,都将其姓名添加到这个空列表中。

>>> user_names = [ ]

>>> user_names.append('zhang')

>>> user_names.append('liu')

>>> user_names

['zhang','liu']

第2种方法:在列表中插入元素

方法insert()可在列表的任何地方添加新的元素,需要指定新元素的索引和值。比如,在列表的第2个位置(索引为1处)添加元素'tiger':

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals.insert(1,'tiger')

>>> animals

['cat','tiger','dog','monkey','rabbit']

insert()方法向列表插入元素后,既有列表中的每个元素都右移一个位置。

4.2.2 修改列表中的元素

修改列表中的元素,需要先访问该元素,并将该索引处的值重新赋值。例如,要将animals列表中的'monkey'修改为'pig':

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

>>> animals[2] = 'pig'

>>> animals

['cat','dog','pig','rabbit']

输出表明,索引为2处的值确实已经变了,但其他位置的元素值没变。

4.2.3 从列表中删除元素

有4种方法可以删除列表中的元素,注意,这几种方法有一些区别,实际应用时根据需要采用不同的方法即可。

第1种方法:使用del语句删除元素

如果知道要删除元素在列表中的位置,可以直接使用del语句,例如,要删除'cat',其索引值为0:

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

>>> del animals(0)

>>> animals

['dog','monkey','rabbit']

输出显示,第一个位置的元素被删除了。使用del可删除列表中任何位置的列表元素,条件是知道要删除元素的索引。

注意:使用del语句将元素从列表中删除后,就无法再访问它了,也就是说,del删除的是列表本身。

第2种方法:使用pop()方法删除元素

pop()方法删除列表末尾的元素,并将这个元素返回给你,以便你可以接着使用它。例如,删除列表animals的末尾元素,并打印一条消息:

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

>>> favorite_animal = animals.pop()

>>> animals

['cat','dog','monkey']

>>> print("I love " + favorite_animal + ".")

I love rabbit.

输出表明,pop()方法确实删除了列表animals中的末尾元素,并将这个被删除的元素赋值给了变量 favorite_animal,最后一行使用了这个被删除的值,输出一条消息。

第3种方法:删除列表中任何位置的元素

pop()方法可以删除列表中任何位置的元素,只需在方法的括号内指定要删除的元素的索引即可,例如删除索引为1处的元素:

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

>>> favorite_animal = animals.pop(1)

>>> animals

['cat','monkey','rabbit']

>>> print("I love " + favorite_animal + ".")

I love dog.

输出表明,索引1处的值确实删除了,并使用这个被删除的值打印了一条消息。当pop()方法不指定具体的索引时,就是默认删除列表的最后一个元素,当指定具体的索引时,就删除列表中对应索引处的值。

pop()方法和del方法的使用参考标准:

如果要从列表中删除一个元素,并且不再需要以任何方式使用它,就用del方法;

如果要在删除某个元素后还想继续使用这个元素,就用pop()方法。

第4种方法:根据值删除元素

如果知道要删除的元素的值,而不知道元素的索引,可以使用remove()方法。例如,要删除列表中元素'monkey',但不知道其索引:

>>> animals = ['cat','dog','monkey','rabbit']

>>> animals

['cat','dog','monkey','rabbit']

>>> favorite_animal = animals.remove('monkey')

>>> animals

['cat','dog','rabbit']

>>> print("I love " + favorite_animal + ".")

I love monkey.

输出表明,元素'monkey'确实被删除了。remove()方法从列表中删除元素后,也可以接着使用被删除的元素。上面的最后一行使用了被删除的元素,并打印了一条消息。

注意:如果列表中同一个值出现了多次,方法remove()只删除列表中第一个指定的值。例如要删除列表中的元素'dog':

>>> animals = ['cat','dog','monkey','dog']

>>> animals.remove('dog')

>>>animals

['cat','monkey','dog']

输出表明,方法remove()只删除了列表中的第一个元素,如果要删除列表中所有指定的值,可以使用循环,以后会再讲。

欢迎关注:Python公开课,一起创造有趣的事儿

相关推荐

Python Flask 容器化应用链路可观测

简介Flask是一个基于Python的轻量级Web应用框架,因其简洁灵活而被称为“微框架”。它提供了Web开发所需的核心功能,如请求处理、路由管理等,但不会强制开发者使用特定的工具或库。...

Python GUI应用开发快速入门(python开发软件教程)

一、GUI开发基础1.主流GUI框架对比表1PythonGUI框架比较框架特点适用场景学习曲线Tkinter内置库,简单小型应用,快速原型平缓PyQt功能强大,商用许可专业级桌面应用陡峭PySi...

【MCP实战】Python构建MCP应用全攻略:从入门到实战!

实战揭秘:Python Toga 打造跨平台 GUI 应用的神奇之旅

在Python的世界里,GUI(图形用户界面)开发工具众多,但要找到一款真正跨平台、易于使用且功能强大的工具并不容易。今天,我们就来深入探讨一下Toga——一款Python原生、操作系统原...

python应用目录规划(python的目录)

Python大型应用目录结构规划(企业级最佳实践)核心原则模块化:按业务功能拆分,高内聚低耦合可扩展性:支持插件机制和动态加载环境隔离:清晰区分开发/测试/生产环境自动化:内置标准化的构建测试部署流...

Python图形化应用开发框架:PyQt开发简介

PyQt概述定义:PyQt是Python绑定Qt框架的工具集,用于开发跨平台GUI应用程序原理:通过Qt的C++库提供底层功能,PyQt使用SIP工具生成Python绑定特点:支持Windows/ma...

[python] 基于PyOD库实现数据异常检测

PyOD是一个全面且易于使用的Python库,专门用于检测多变量数据中的异常点或离群点。异常点是指那些与大多数数据点显著不同的数据,它们可能表示错误、噪声或潜在的有趣现象。无论是处理小规模项目还是大型...

Python、Selenium 和 Allure 进行 UI 自动化测试的简单示例脚本

环境准备确保你已经安装了以下库:SeleniumAllurepytest你可以使用以下命令安装所需库:pipinstallseleniumallure-pytestpytest示例代码下面的代...

LabVIEW 与 Python 融合:打造强大测试系统的利器

在现代测试系统开发领域,LabVIEW和Python各自凭借独特优势占据重要地位。LabVIEW以图形化编程、仪器控制和实时系统开发能力见长;Python则凭借丰富的库资源、简洁语法和强大数...

软件测试进阶之自动化测试——python+appium实例

扼要:1、了解python+appium进行APP的自动化测试实例;2、能根据实例进行实训操作;本课程主要讲述用python+appium对APP进行UI自动化测试的例子。appium支持Androi...

Python openpyxl:读写样式Excel一条龙,测试报表必备!

无论你是测试工程师、数据分析师,还是想批量导出Excel的自动化工作者,只需一个库openpyxl,即可高效搞定Excel的各种需求!为什么选择openpyxl?支持.xlsx格式...

Python + Pytest 测试框架——数据驱动

引言前面已经和大家介绍过Unittest测试框架的数据驱动框架DDT,以及其实现原理。今天和大家分享的是Pytest测试框架的数据驱动,Pytest测试框架的数据驱动是由pytest自...

这款开源测试神器,圆了我玩游戏不用动手的梦想

作者:HelloGitHub-Anthony一天我在公司用手机看游戏直播,同事问我在玩什么游戏?我和他说在看直播,他恍然大悟:原来如此,我还纳闷你玩游戏,咋不用动手呢。。。。一语惊醒梦中人:玩游戏不用...

Python单元测试框架对比(pycharm 单元测试)

一、核心框架对比特性unittest(标准库)pytest(主流第三方)nose2(unittest扩展)doctest(文档测试)安装Python标准库pipinstallpytestp...

利用机器学习,进行人体33个2D姿态检测与评估

前几期的文章,我们分享了人脸468点检测与人手28点检测的代码实现过程,本期我们进行人体姿态的检测与评估通过视频进行人体姿势估计在各种应用中起着至关重要的作用,例如量化体育锻炼,手语识别和全身手势控制...

取消回复欢迎 发表评论: