Python 列表的基本操作介绍
作者:不羁 发布时间:2021-09-09 08:13:34
1、向List中添加元素的方法
1.1 Python append()方法添加元素
append()
方法用于在列表的末尾追加元素,该方法的语法格式如下:
listname.append(obj)
其中,listname
表示要添加元素的列表;obj
表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。
1.2 Python extend()方法添加元素
extend() 和 append() 的不同之处在于:extend()
不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。
extend() 方法的语法格式如下:
listname.extend(obj)
其中,listna
me 指的是要添加元素的列表;obj
表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。
示例:
l = ['Python', 'C++', 'Java'] # 追加元素
l.extend('C')
print(l)
# 追加元组,元祖被拆分成多个元素
t = ('JavaScript', 'C#', 'Go')
l.extend(t)
print(l)
# 追加列表,列表也被拆分成多个元素
l.extend(['Ruby', 'SQL']) print(l)
运行结果:
['Python', 'C++', 'Java', 'C']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go']
['Python', 'C++', 'Java', 'C', 'JavaScript', 'C#', 'Go', 'Ruby', 'SQL']
1.3 Python insert()方法插入元素
append()
和 extend()
方法只能在列表末尾插入元素,如果希望在列表中间某个位置插入元素,那么可以使用 insert() 方法。
insert() 的语法格式如下:
listname.insert(index,obj)
其中,index
表示指定位置的索引值。insert()
会将 obj
插入到 listname
列表第 index
个元素的位置。 当插入列表或者元祖时,insert() 也会将它们视为一个整体,作为一个元素插入到列表中,这一点和 append()
是一样的。
2、向List中删除元素的方法
在 Python 列表中删除元素主要分为以下 3 种场景:
根据目标元素所在位置的索引进行删除,可以使用 del 关键字或者
pop()
方法;根据元素本身的值进行删除,可使用列表(
list
类型)提供的remove()
方法;将列表中所有元素全部删除,可使用列表(
list
类型)提供的clear()
方法。
2.1 del:根据索引值删除元素
del 可以删除列表中的单个元素,格式为:
del listname[index]
其中,listname
表示列表名称,index
表示元素的索引值。 del
也可以删除中间一段连续的元素,
格式为:
del listname[start : end]
2.2 pop():根据索引值删除元素
Python pop()
方法用来删除列表中指定索引处的元素,
具体格式如下:
listname.pop(index)
其中,listname 表示列表名称,index 表示索引值。如果不写 index
参数,默认会删除列表中的最后一个元素,类似于数据结构中的“出栈”操作。
大部分编程语言都会提供和 pop()
相对应的方法,就是 push()
,该方法用来将元素添加到列表的尾部,类似于数据结构中的“入栈”操作。
但是 Python 是个例外,Python
并没有提供 push()
方法,因为完全可以使用 append()
来代替 push()
的功能。
2.3 remove():根据元素值进行删除
除了 del 关键字,Python
还提供了 remove()
方法,该方法会根据元素本身的值来进行删除操作。
需要注意的是,remove()
方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发 ValueError 错误。
nums = [40, 36, 89, 2, 36, 100, 7]
#第一次删除36
nums.remove(36)
print(nums)
#第二次删除36
nums.remove(36)
print(nums)
#删除78
nums.remove(78)
print(nums)
运行结果:
[40, 89, 2, 36, 100, 7]
[40, 89, 2, 100, 7]
Traceback (most recent call last):
File "C:\Users\mozhiyan\Desktop\demo.py", line 9, in <module>
nums.remove(78)
ValueError: list.remove(x): x not in list
最后一次删除,因为 78 不存在导致报错,所以我们在使用 remove()
删除元素时最好提前判断一下。
2.4 clear():删除列表所有元素
Python clear()
用来删除列表的所有元素,也即清空列表,
请看下面的代码:
url = list("http://c.biancheng.net/python/")
url.clear()
print(url)
运行结果:
[]
3、list列表修改元素
3.1 修改单个元素
修改单个元素非常简单,直接对元素赋值即可。
请看下面的例子:
nums = [40, 36, 89, 2, 36, 100, 7]
nums[2] = -26 #使用正数索引
nums[-3] = -66.2 #使用负数索引
print(nums)
运行结果:
[40, 36, -26, 2, -66.2, 100, 7]
使用索引得到列表元素后,通过=赋值就改变了元素的值。
3.2 修改一组元素
Python
支持通过切片语法给一组元素赋值。在进行这种操作时,如果不指定步长(step 参数),Python
就不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。
示例:
nums = [40, 36, 89, 2, 36, 100, 7]
#修改第 1~4 个元素的值(不包括第4个元素)
nums[1: 4] = [45.25, -77, -52.5]
print(nums)
运行结果:
[40, 45.25, -77, -52.5, 36, 100, 7]
4、list列表查找元素
4.1 index() 方法
index()
方法用来查找某个元素在列表中出现的位置(也就是索引),如果该元素不存在,则会导致 ValueError
错误,所以在查找之前最好使用 count()
方法判断一下。
index() 的语法格式为:
listname.index(obj,start,end)
其中,listname
表示列表名称,obj
表示要查找的元素,start
表示起始位置,end
表示结束位置。
4.2 count()方法
count()
方法用来统计某个元素在列表中出现的次数,
基本语法格式为:
listname.count(obj)
其中,listname
代表列表名,obj
表示要统计的元素。
如果 count()
返回 0,就表示列表中不存在该元素,所以 count()
也可以用来判断列表中的某个元素是否存在。
5、总结
Python中列表是可修改类型,在程序运行过程中可以对列表的元素进行插入和删除运算。但是元组却是不可修改类型,要对其进行更改操作可以通过再构造一个新的元组替换旧的元组,来实现元素的插入和删除。
来源:https://zhuanlan.zhihu.com/p/108574421
猜你喜欢
- 本次爬虫用到的网址是:http://www.netbian.com/index.htm: 彼岸桌面.里面有很多的好看壁纸,而且都是可以下载高
- 年关将至,大家对疫情的关注度也愈发提升,本次使用PyQt5撰写100行代码写一个疫情信息快速查看工具。一.准备工作1.PyQt5PyQt 是
- 一心想学习算法,很少去真正静下心来去研究,前几天趁着周末去了解了最短路径的资料,用python写了一个最短路径算法。算法是基于带权无向图去寻
- 1、首先,界面上有个按钮触发操作:<button type="button" class="layui-
- 关于书写习惯,遵循曾经总结过的风格标准,现在一点都没有变。并且近来翻看高手作品,横向连排似乎在大产品项目中逐渐成为主流,个人认为如此维护效率
- Web应用的发展,使得客户端存储使用得也越来越多,而实现客户端存储的方式则是多种多样。最简单而且兼容性最佳的方案是Cookie,但是作为真正
- 例如:性别 gender 男 女 保密基本语法:enum(数据值 1,数据值 2...);数据值列表在 255 个以内,使用 1 个字节来存
- 引言一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有
- 如何为XHTML做好准备,XHTML与HTML 4.01标准没有太多的不同。所以将你的代码升级至4.01是个不错的开始。HTML 4.01参
- 最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpc/udp服务端,用户的机器(路由器、交换机)将它们的各种统
- Django2.1 + Python3.6 + nginx + uwsgi 部署到Ubuntu18.04材料准备准备一个Django项目准备
- 一、介绍QQ空间相册的个性化利器,能对照片进行效果的优化、文字编辑等等。从设计上使用了创新的手法,尽量减少用户的思考。其中,通过界面的特殊表
- 前言最近更新了Python版本,准备写个爬虫,意外的发现urllib库中属性不存在urlopen,于是各种google,然后总结一下给出解决
- 在定义图结构之前不用加入gpu:0,只有在session中计算之前在加入,否则的话会提示不能使用gpu保存模型等问题。 with  
- 本文实例讲述了Python实现爬虫抓取与读写、追加到excel文件操作。分享给大家供大家参考,具体如下:爬取糗事百科热门安装 读写excel
- 这篇论坛文章详细介绍了完全卸载MySQL数据库5.0的具体方法,更多内容请参考下文:数据库突然出了问题,没办法只能重装,因为事先并不知道My
- CSS hack是指我们为了兼容各浏览器,而使用的特别的css定义技巧。这是国外摘来的一张CSS hack列表,显示了各浏览器对css ha
- 在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。我前段时间写
- 目录前言掘金的成长搬家命令行工具环境配置main.pycookie.jsongithub 地址前言最近不少写博客的朋友跟我反馈博客园的一些文
- 本文实例讲述了JavaScript实现点击按钮切换网页背景色的方法。分享给大家供大家参考,具体如下:这里演示JavaScript用按钮随意变