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

Python3基础之list列表实例解析

本文将进一步深入学习列表的使用。

一、列表的方法:

list.append(x)
在列表的尾部添加一个项,等价于 a[len(a):] = [x]。

list.extend(L)
将给定的列表L接到当前列表后面,等价于 a[len(a):] = L。

list.insert(i, x)
在给定的位置 i 前插入项,例如:a.insert(0, x) 会在列表的头部插入,而 a.insert(len(a), x) 则等价于 a.append(x)。

list.remove(x)
移除列表中第一个值为 x 的项,没有的话会产生一个错误。

list.pop([i])
删除列表给定位置的项,并返回它。如果没指定索引,a.pop()移除并返回列表最后一项。(方括号表示可选)

list.clear()
删除列表中的所有项,相当于 del a[:]。

list.index(x)
返回列表中第一个值为 x 的项的索引。如果没有匹配的项, 则产生一个错误。

list.count(x)
返回列表中 x 出现的次数。

list.sort()
就地完成列表排序。

list.reverse()
就地完成列表项的翻转。

list.copy()
返回列表的一个浅拷贝,相当于a[:]。

二、列表当栈

List的方法使得其可以很方便地作为一个栈来使用。我们知道,栈的特点是最后进入的元素最先出来(即后入先出),用append()方法进行压栈,用不指定索引的pop()方法进行出栈。

示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

stack=[]

forxinrange(1,6):

stack.append(x)# 入栈

print('push', x, end=' ')

print(stack)

print('Now stack is', stack)

whilelen(stack)>0:

print('pop', stack.pop(), end=' ')# 出栈

print(stack)

三、列表当队列

列表还可以当作队列来使用,队列的特性是第一个加入的元素第一个取出来(即先入先出)。然而,把列表当队列使用效率并不高,因为从列表的尾部添加和弹出元素是很快的,而在列表的开头插入或弹出是比较慢的(因为所有元素都得移动一个位置)。
要实现一个队列, 使用标准库的collections.deque, 它被设计成在两端添加和弹出都很快。

示例代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

fromcollectionsimportdeque

queue=deque()# 创建空队列

forxinrange(1,6):

queue.append(x)# 入队

print('push', x, end=' ')

print(list(queue))

print('Now queue is',list(queue))

whilelen(queue)>0:

print('pop', queue.popleft(), end=' ')# 出队

print(list(queue))

四、列表推导式

列表推导式提供了从序列创建列表的简单途径。通常程序会对序列的每一个元素做些操作,并以其结果作为新列表的元素,或者根据指定的条件来创建子序列。

列表推导式的结构是:在一个方括号里,首先是一个表达式,随后是一个 for 子句,然后是零个或更多的 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。

示例代码如下:

1

2

3

4

5

6

squares=[x**2forxinrange(10)]# 推导式

print(squares)

# 输出是[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

pairs=[(x, y)forxin[1,2,3]foryin[3,1,4]ifx!=y]# 推导式

print(pairs)

# 输出是[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

五、列表嵌套

Python中并没有二维数组的概念,但我们可以通过列表嵌套达到同样的目的。

1

2

3

4

5

mat=[

[1,2,3],

[4,5,6],

[7,8,9]

]

同样,我们可以使用推导式生成嵌套的列表:

1

2

3

4

mat=[[1,2,3], [4,5,6], [7,8,9]]

new_mat=[ [row[i]forrowinmat]foriin[0,1,2] ]# 嵌套

print(new_mat)

# 输出[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

附:del语句

del语句可以通过给定索引(而不是值)来删除列表中的项,它与返回一个值的pop()方法不同。del语句也可以移除列表中的切片,或者清除整个列表 :

1

2

3

4

5

6

7

8

9

lst=[1,2,3,4,5,6,7,8,9]

dellst[2]# 删除指定索引项

print(lst)

dellst[2:5]# 删除切片

print(lst)

dellst[:]# 删除整个列表

print(lst)

del也可以用于删除变量实体:

dellst

在删除变量实体之后引用 lst 的话会产生错误。

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

相关文章:

  • Rust高性能番茄小说下载器:从网络爬虫到电子书生成的完整解决方案
  • 解锁Beyond Compare专业版:深入解析Python密钥生成技术
  • 讲讲河南恒发钢结构,在河南、北京等地做项目靠谱吗? - mypinpai
  • Resophy静态站点生成器:极简设计、高性能架构与实战指南
  • LizzieYzy:围棋AI智能分析教练,让复盘与学习事半功倍
  • 2026隐形车衣性价比排名,揭秘隐形车衣品牌优缺点及施工注意啥 - 工业品网
  • LangAlpha:基于程序化工具调用与持久化工作空间的金融AI研究平台深度解析
  • AAGPT本地AI助手部署指南:从架构解析到实战调优
  • 前端脚手架开发指南
  • 基于大语言模型与向量数据库构建角色扮演AI聊天机器人实践
  • AI写论文新选择!4款AI论文写作工具,为你的毕业论文保驾护航!
  • 软件认证管理中的多因素认证
  • Synopsys AXI VIP进阶玩法:利用Callback机制自定义你的Monitor分析端口
  • Tessent Scan实战:用UPF/CPF文件搞定低功耗设计测试的完整流程(含DRC避坑)
  • 【技术解析】TabNet:融合注意力与可解释性的表格数据学习新范式
  • 2026年隐形车衣费用多少,帮我推荐,分析质保及翘边原因 - 工业品牌热点
  • 当AI能‘听懂人话’:Grounding DINO如何用一句话帮你从图片里找东西?
  • 【超全教程】2026年Hermes Agent/OpenClaw阿里云3分钟轻松集成流程
  • AntV X6实战避坑:在Vue3中自定义节点样式与实现复杂交互(附完整事件处理代码)
  • 细聊隐形车衣选购要点,广州靠谱门店的隐形车衣好用吗? - 工业推荐榜
  • 从‘深分页’到‘游标分页’:一次订单导出性能提升500%的优化实录(附EasyExcel配置)
  • 渗透测试方法
  • 从零到一:基于STM32F407VET6与CubeMX的CAN通信实战配置与调试
  • 桌面应用开发跨平台框架选择
  • 免费、开源的Windows实时语音识别工具:TMSpeech完全指南
  • VM虚拟机
  • 如何用罗技鼠标宏实现PUBG零后坐力压枪?5分钟快速配置指南
  • AI写论文不用愁!4款AI论文生成工具,为你的毕业论文保驾护航!
  • 别再死记硬背DFA了!用Java手把手带你实现一个可配置的字符串识别器(附完整源码)
  • 别再手搓了!用C# Winform 5分钟搞定工控机上的多选下拉框(MultiComboBox)