【Python】列表

【Python】列表

文章目录


前言

本文主要介绍Python中的数据类型——列表的相关概念。


一、列表

列表(list)是一种有序和可更改的集合,列表中允许存在重复元素,允许存在不同类型的元素。

二、创建列表

1. 创建空列表

在python中[]表示一个空列表

a =[]print(type(a))# <class 'list'>print(a)# []

使用list()函数也可以创建一个空列表

a =list()print(type(a))# <class 'list'>print(a)# []

2. 创建非空列表

创建列表时可以设置初始值

a =[1,3,2.2,'Jinger']print(type(a))# <class 'list'>print(a)# [1, 3, 2.2, 'Jinger']

三、操作列表

1. 新增列表元素

1.1 append方法

append方法可以在列表末尾增加一个元素

a =[1,3.0,2.2] a.append('Jinger')print(type(a))# <class 'list'>print(a)# [1, 3.0, 2.2, 'Jinger']

1.2 insert方法

insert方法可以在任意指定下标(支持负索引)插入一个元素

a =[1,3.0,2.2] a.insert(1,'Jinger')print(type(a))# <class 'list'>print(a)# [1, 'Jinger', 3.0, 2.2] a.insert(-1,'Hello')print(type(a))# <class 'list'>print(a)# [1, 'Jinger', 3.0, 'Hello', 2.2]
负索引:
我们常说的下标都是从列表第一个元素开始往后,从0开始计数的,而负索引则是从列表最后一个元素开始往前,依次为-1, -2, -3...
因此想要访问列表的最后一个元素,直接访问下标为-1的元素即可。

注意
如果指定下标超出列表中的最大下标,则插入到列表末尾(如果为负索引,则插入列表首部)

a =[1,3.0,2.2] a.insert(100,'Jinger')print(type(a))# <class 'list'>print(a)# [1, 3.0, 2.2, 'Jinger'] a.insert(-100,'Hello')print(type(a))# <class 'list'>print(a)# ['Hello', 1, 3.0, 2.2, 'Jinger']

2. 删除列表元素

2.1 pop方法

pop方法可以删除列表的末尾元素,或者删除指定下标的元素

a =[1,3.0,2.2] a.pop()print(type(a))# <class 'list'>print(a)# [1, 3.0] a.pop(1)print(type(a))# <class 'list'>print(a)# [1]

2.2 remove方法

remove方法可以删除列表中指定的元素

a =[1,3.0,2.2,3.0] a.remove(3.0)print(type(a))# <class 'list'>print(a)# [1, 2.2, 3.0]

注意
当列表中存在重复元素时,使用remove方法仅能删除第一次出现的元素

3. 查找列表元素

3.1 in/not in操作符

in/not in操作符可以判断某个元素是否在列表中,如果存在则返回True,不存在则返回False

a =[1,3.0,2.2,3.0]print(3in a)# Trueprint(3notin a)# Falseprint(type(a))# <class 'list'>print(a)# [1, 3.0, 2.2, 3.0]

3.2 index方法

index方法可以查询指定元素在列表中的下标

a =[1,3.0,2.2,3.0]print(a.index(2.2))# 2

3.3 下标访问列表元素

通过[]下标访问操作符可以获取到列表中对应下标的元素(支持负索引)

a =[1,3.0,2.2,3.0]print(a[3])# 3.0

4. 修改列表元素

通过[]下标访问操作符还可以修改列表中对应下标的元素的值

a =[1,3.0,2.2,3.0] a[3]=4print(a)# [1, 3.0, 2.2, 4]

5. 遍历列表元素

5.1 for循环遍历列表

Python中的for循环可以直接遍历列表中的元素

a =[1,3.0,2.2,3.0]foriterin a:print(iter)

但是对iter进行更改时,列表中的元素不会受到影响(可以理解为是将列表中对应元素的值赋值给了变量iter,所以修改iter不会影响到列表中的元素)

a =[1,3.0,2.2,3.0]foriterin a:iter+=1print(iter)# 2 4.0 3.2 4.0print(a)# [1, 3.0, 2.2, 3.0]

如果想要通过for循环来修改列表中的元素,可以使用for循环遍历列表元素下标的方式,遍历列表中的元素

a =[1,3.0,2.2,3.0] n =len(a)for i inrange(n): a[i]+=1print(a[i])# 2 4.0 3.2 4.0print(a)# [2, 4.0, 3.2, 4.0]

5.2 while循环遍历列表

while循环也可以通过变量列表元素下标的方式来访问列表元素

a =[1,3.0,2.2,3.0] n =len(a) i =0while i inrange(n):# 或者使用 while i < n a[i]+=1print(a[i])# 2 4.0 3.2 4.0 i +=1print(a)# [2, 4.0, 3.2, 4.0]

6. 子列表提取

6.1 [start:stop]

[start:stop]的方式可以从列表中提取出:从start起始下标开始,到stop结束下标结束的一组元素(左闭右开)

a =[1,3.0,2.2,3.0] b = a[1:2] c = a[0:2] d = a[0:3]print(a)# [1, 3.0, 2.2, 3.0]print(b)# [3.0]print(c)# [1, 3.0]print(d)# [1, 3.0, 2.2]

6.2 切片时忽略边界

提取子列表的过程也称作切片的过程,以[start:stop]的方式进行切片时可以忽略起始下标和结束下标

  • 如果以[start:]的方式进行切片,则子列表的元素包括起始下标的元素及其后续所有元素;
  • 如果以[:stop]的方式进行切片,则子列表的元素包括结束下标之前的所有元素,不包括结束下标的元素
  • 如果以[:]的方式进行切片,则子列表的元素包括原列表的所有元素
a =[1,3.0,2.2,3.0] b = a[1:2] c = a[1:] d = a[:2] e = a[:]print(a)# [1, 3.0, 2.2, 3.0]print(b)# [3.0]print(c)# [3.0, 2.2, 3.0]print(d)# [1, 3.0]print(e)# [1, 3.0, 2.2, 3.0]

注意
切片时所用下标支持负索引

a =[1,3.0,2.2,3.0] b = a[-3:-1]print(a)# [1, 3.0, 2.2, 3.0]print(b)# [3.0, 2.2]

6.3 切片时指定步长

[start:stop:step]的方式切片可以指定step步长(每访问一个元素后下标自增几步),例如

a =[1,3.0,2.2,3.0] b = a[0:3:2]print(a)# [1, 3.0, 2.2, 3.0]print(b)# [1, 2.2]

注意
指定的步长可以为负数,表示从后往前提取元素
当步长为负数时,会从右向左遍历(反向切片),start默认为最后一个元素,stop默认为第一个元素(不包括),只有start大于stop才能切到元素,例如

a =[1,3.1,2.2,3.0] b = a[::-1] c = a[3:0:-1] d = a[-1::-2]print(a)# [1, 3.1, 2.2, 3.0]print(b)# [3.0, 2.2, 3.1, 1]print(c)# [3.0, 2.2, 3.1]print(d)# [3.0, 3.1]

6.4 切片时下标允许越界

如果在切片时,指定的下标超出了有效范围,运行程序不会抛异常,而是会尽可能将符合要求的元素提取出来,例如:

a =[1,3.0,2.2,3.0] b = a[2:100:1] c = a[100:0:-1]print(a)# [1, 3.0, 2.2, 3.0]print(b)# [2.2, 3.0]print(c)# [3.0, 2.2, 3.0]

7. 拼接列表

7.1 使用+拼接两个列表

使用+操作符可以将两个列表拼接起来生成一个新列表,该操作不会影响两个原有列表

a =[1,3.1,2.2,3.0] b =[2.2,'Jinger'] c = a + b print(a)# [1, 3.1, 2.2, 3.0]print(b)# [2.2, 'Jinger']print(type(c))# <class 'list'>print(c)# [1, 3.1, 2.2, 3.0, 2.2, 'Jinger']

7.2 使用+=操作符

使用+=操作符可以将一个列表拼接到另一个列表后面

a =[1,3.1,2.2,3.0] b =[2.2,'Jinger'] b += a print(a)# [1, 3.1, 2.2, 3.0]print(b)# [2.2, 'Jinger', 1, 3.1, 2.2, 3.0]

7.3 extend方法

使用extend方法也可以将一个列表拼接到另一个列表后面

a =[1,3.1,2.2,3.0] b =[2.2,'Jinger'] b.extend(a)print(a)# [1, 3.1, 2.2, 3.0]print(b)# [2.2, 'Jinger', 1, 3.1, 2.2, 3.0]
+=操作符和extend方法都可以将一个列表拼接到另一个列表后面,但是extend方法更高效
因为,b += a等价于b = b + a,拼接过程中会先构造出一个临时列表作为拼接后的列表,再将b原本的列表释放,然后将这个临时列表赋值给b
extend方法则是直接将a列表的元素拼接到b列表后面,避免了不必要的释放操作

四、列表常用接口

Python是一种面向对象的语言,因此创建出来的列表本质是一个对象,这些操作列表的方法都是列表的成员方法。列表的常用接口如下:

1. 列表操作

列表操作方式
子列表提取this_list[start:stop:step]
列表检查innot in
列表拼接++=
列表长度len()函数

2. 列表的成员函数

成员函数功能
copy复制列表
clear清空列表
append在列表末尾添加一个元素
insert在列表指定下标插入一个元素
extend将列表元素(或任意可迭代对象的元素)添加到当前列表的末尾
pop删除列表中指定下标的元素(默认为末尾元素)
remove删除列表中指定元素(首次出现)
index返回列表中指定元素的下标(首次出现)
count返回列表中指定元素的个数
reverse颠倒列表中元素的顺序
sort对列表中元素进行排序

总结

以上就是今天要讲的内容,本文介绍了Python数据类型——列表的相关概念。本文作者目前也是正在学习Python相关的知识,如果文章中的内容有错误或者不严谨的部分,欢迎大家在评论区指出,也欢迎大家在评论区提问、交流。
最后,如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!

Read more

【3月考】二级Python最新真题及满分代码合集(简单应用题部分)

【3月考】二级Python最新真题及满分代码合集(简单应用题部分)

本套试题内容适配2026年3月考试 文本结尾提供所有题目配套电子版及素材和答案 祝大家优秀拿下!!! 第1套题 【题目素材】 # 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换## 注意:提示框架代码可以任意修改,以完成程序功能为准 txt =input("请输入类型序列: ")... d ={}... ls =list(d.items()) ls.sort(key=lambda x:x[1], reverse=True)# 按照数量排序for k in ls:print("{}:{}".format(k[0], k[1])) 【参考代码】 # 以下代码为提示框架# 请在...处使用一行或多行代码替换# 请在______处使用一行代码替换#

By Ne0inhk

windows 系统安装 python 的最好方式也许就是不安装

一、 核心问题 目前在windows机器上面安装python,去python官网下载下来的安装文件不是具体的某一个版本的python,而是一个叫做“python-manager-25.0.msix”东西 这个东西被称作为“python install manager” 并且后面这种方式安装python将成为windows系统安装python的主流方式,官网原文如下: The Python install manager for Windows is our tool for installing and managing runtimes. The traditional executable installer will stop being released with Python 3.16 As well as the files below, the Python install

By Ne0inhk
2026年1月远程工具横评:UU远程以全能六边形战士之姿,重塑行业性能标杆

2026年1月远程工具横评:UU远程以全能六边形战士之姿,重塑行业性能标杆

目录 写在前面:一场关于“效率”的军备竞赛 一、 核心突破:详解UU远程2026年1月重磅升级,如何解决远程协助世纪难题? 1.1 自定义验证码:把“报号码”从技术活变成家常便饭 1.2 客户端安全锁:远程协助时的“定海神针” 1.3 免登录远程协助:打破第一道门槛,实现真正“零门槛” 1.4 UU远程运维版定向开放:命令行批量管控,专为专业场景打造的效率引擎 二、 硬核横评:六大远程软件谁是2026年1月的性能之王? 2.1 性能之王:画质与延迟的终极较量 2.2 功能六边形战士:谁才是真正的全能王? 2.3 价格与限制:免费还是套路? 三、 综合评分与总结:2026年1月,你的最佳选择是谁?

By Ne0inhk
【Python】基础语法入门(二)

【Python】基础语法入门(二)

前言 在上一篇基础语法(一)中,我们搭建了变量、运算符、输入输出等“编程地基”,但程序还是只能按固定顺序“从头到尾”执行。在这一篇中,我们将聚焦Python的核心逻辑控制,条件语句和循环语句,以帮你解锁“根据情况做选择”和“重复执行某项任务”的关键能力,让程序真正具备“解决实际问题”的灵活度! 一、程序的3种核心执行结构 所有编程场景的执行逻辑,都离不开3种基础结构: * 顺序结构:程序从上到下依次执行(基础语法一已掌握)。 * 选择结构(条件语句):程序按条件判断,走不同的执行分支(比如“成绩≥60为及格,否则为不及格”。 * 循环结构(循环语句):程序重复执行某段代码,直到满足结束条件(比如“打印1-100所有数字”)。 二、条件语句 条件语句的核心是“分支逻辑”,程序会根据条件的“真(True)

By Ne0inhk