Python列表详解

文章目录

刷完这60个标准库模块,成为Python骨灰级玩家

索引和逆转

列表几乎是Python中使用频率最高的数据结构了,一般来说,只需用逗号分隔,并用方括号括起来,便是列表。

python 复制代码
x = [1,2,3,4,5]

列表可通过[]来进行元素索引和更改,同时支持带有:的索引语句,例如

python 复制代码
>>> x = [1,2,3,4,5]
>>> x[0]
1
>>> x[0] = 1
>>> x
[1, 2, 3, 4, 5]
>>> x[2:5]
[3, 4, 5]
>>> x[:5:2]
[1, 3, 5]

【reverse】方法可以实现列表内容的逆转

python 复制代码
>>> x.reverse()
>>> x
[5, 4, 3, 2, 1]

如果只是想得到逆转后的列表,而不希望改变原始列表的顺序,那么可以通过:索引语句来实现。下面就来演示一下,但注意,x已经经过reverse了

python 复制代码
>>> x
[5, 4, 3, 2, 1]
>>> x[::-1]
[1, 2, 3, 4, 5]
>>> x[::-2]
[1, 3, 5]

增删元素和查找元素

在Python中,列表中的内容可随意增减,与此相关的方法有append, extend, insert, pop, remove等,此外还有del可删除列表中特定的项。

其中,【append, extend, insert】用于增添元素,示例如下

python 复制代码
>>> x = [1,2,3,4,5]
>>> x.append(8)
>>> print(x)
[1, 2, 3, 4, 5, 8]
>>> x.extend([2,3,4])
>>> print(x)
[1, 2, 3, 4, 5, 8, 2, 3, 4]
>>> x.insert(3,10)
>>> print(x)
[1, 2, 3, 10, 4, 5, 8, 2, 3, 4]

其中x.append将元素添加到x的末尾;x.extend将一个列表拼接在x的结尾;x.insert(index, obj)可将obj插入到x的第index位置处。

【pop, remove, del】可删除列表中特定的项, 示例如下

python 复制代码
>>> x.pop(0)
1
>>> print(x)
[2, 3, 10, 4, 5, 8, 2, 3, 4]
>>> x.pop()
4
>>> print(x)
[2, 3, 10, 4, 5, 8, 2, 3]
>>> x.remove(2)
>>> print(x)
[3, 10, 4, 5, 8, 2, 3]
>>> print(x)
[10, 4, 5, 8, 2, 3]
>>> del x[0]
>>> print(x)
[10, 4, 5, 8, 2, 3]
>>> del x[2]
>>> print(x)
[10, 4, 8, 2, 3]

其中,x.pop(index)表示弹出在index位置处的元素,并返回。所以x.pop(0)弹出了第0个元素1。x.pop()默认index=-1,即弹出最后一个值,所以x.pop()弹出了最后一个值。

x.remove(obj)则删除x中的所有obj对象,所以x.remove(2)删除了x中所有2。

此外,还可以通过del直接删除对象。

x.remove(obj)可删除x中的所有obj对象,那么在删除之前一定会对obj定位,在python中,列表提供了index函数用于查找某个元素的首个位置

python 复制代码
>>> x.index(8)
2
>>> x.append(8)
>>> x.index(8)
2

排序

对列表而言,另一个重要的任务就是排序,Python中提供了基础的排序函数sort,示例如下

python 复制代码
>>> x.sort()
>>> print(x)
[2, 3, 4, 8, 8, 10]
>>> x.sort(reverse=True)
>>> print(x)
[10, 8, 8, 4, 3, 2]

其中,reverse表示逆向排序。此外,sort函数还有参数key,可以用指定排序函数

python 复制代码
>>> x.sort(key=lambda x : (x-5)**2)
>>> x
[4, 3, 8, 8, 2, 10]

上例中 ,以 y = ( x − 5 ) 2 y=(x-5)^2 y=(x−5)2为排序函数,将所有x中的元素带入函数后,再行比较,得到上面的排序结果。

相关推荐
databook11 分钟前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar1 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780512 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_2 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机8 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机9 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机9 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机9 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i9 小时前
drf初步梳理
python·django
每日AI新事件9 小时前
python的异步函数
python