当前位置: 首页 > news >正文

Python 列表的基本操作介绍

1、向List中添加元素的方法

1.1 Python append()方法添加元素

append()方法用于在列表的末尾追加元素,该方法的语法格式如下:

listname.append(obj)

其中,listname表示要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

1.2 Python extend()方法添加元素

extend() 和 append() 的不同之处在于:extend()不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列表中。

extend() 方法的语法格式如下:

listname.extend(obj)

其中,listname 指的是要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。

示例:

1

2

3

4

5

6

7

8

9

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 错误。

1

2

3

4

5

6

7

8

9

10

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()用来删除列表的所有元素,也即清空列表,

请看下面的代码:

1

2

3

url=list("http://c.biancheng.net/python/")

url.clear()

print(url)

运行结果:

[]

3、list列表修改元素

3.1 修改单个元素

修改单个元素非常简单,直接对元素赋值即可。

请看下面的例子:

1

2

3

4

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就不要求新赋值的元素个数与原来的元素个数相同;这意味,该操作既可以为列表添加元素,也可以为列表删除元素。

示例:

1

2

3

4

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()也可以用来判断列表中的某个元素是否存在。

http://www.jsqmd.com/news/693905/

相关文章:

  • 从零到一:用Mesa框架5步构建你的第一个智能体仿真模型
  • 从《权力的游戏》到微博热点:手把手用Pajek做中心性分析,找出关键人物
  • 面试官最爱问的Verilog模三检测器,我用状态机+随机测试搞定了(附完整代码)
  • Elasticsearch核心查询:精准匹配与全文检索的本质区别与实战选型
  • 工程师笔记:三大磁性元器件(共模电感/一体成型电感/CHIP LAN)选型要点与实战避坑
  • 总结几个非常实用的Python库
  • Qwen3-4B-Instruct功能体验:256K上下文窗口下的长文本智能对话实测
  • 告别官方模板!手把手教你从零搭建CH32V003自定义工程(附目录结构规划)
  • 2026法考真题APP深度测评:竹马app一站式解决五大备考痛点
  • 3个实战场景揭秘:如何用GmSSL让国产密码技术真正落地
  • hph基因结构解析 抗性标记设计
  • 收藏|2026年版程序员高薪突围!AI大模型成逆袭核心赛道
  • DS4Windows:让PS4/PS5手柄在Windows上获得原生游戏体验的终极方案
  • DC综合时遇到‘Unable to resolve reference’警告别慌,手把手教你定位并修复信号位宽不匹配问题
  • 详解python运行三种方式
  • 别再被罚单了!用Python+Arduino动手做个CW多普勒测速雷达(附代码)
  • 用Cocos Creator 2.0.4 + Spring Boot,我如何在一个月内搞定三端(H5/安卓/iOS)斗地主核心逻辑
  • 别再为PLC通讯发愁了!用C#和S7netPlus库,10行代码搞定西门子S7系列数据读写
  • Agent间状态不同步、日志碎片化、时序难追踪……VSCode多智能体调试的7大隐形陷阱,资深架构师逐条击破
  • 保姆级教程:在N32G430上用FreeRTOS v202212.01点灯(附完整工程)
  • 告别手动复制!用Inno Setup 6.2.0为你的Java桌面应用制作专业安装包(含JRE打包)
  • 2026 跨境电商业态深度分析:多语言多货币系统已成全球化战略核心基建
  • 反射驱动的零开销泛型序列化方案全解析,从C++23 constexpr容器到C++26 field_reflector实战演进
  • 终极罗技PUBG鼠标宏指南:5分钟掌握智能压枪技巧
  • 紧急!生产环境MCP网关偶发120ms毛刺?用perf + flame graph 15分钟定位C++虚函数调用链引发的L3缓存抖动——附热补丁patch与回归测试用例
  • 网盘直链下载助手LinkSwift:8大网盘免费高速下载终极指南
  • Nucleus Co-Op:Windows单机游戏分屏多人协作架构深度技术解析
  • 机器人感知与决策系统技术解析
  • 别再傻傻等在线下载了!手把手教你Arthas离线安装(附Maven仓库下载地址)
  • 你的EfficientNetV2为什么训不好?可能是这3个PyTorch配置细节没搞对