python 编程 之列表(list)(python列表list函数)
off999 2024-10-01 13:52 34 浏览 0 评论
列表(list)是Python中的一种内置数据结构,它是一个有序的元素集合,可以包含重复的元素。列表是可变的,这意味着你可以在创建后添加、删除或更改元素。列表的灵活性和易用性使其成为Python编程中最常用的数据结构之一。
1.1 创建列表
列表使用方括号 [] 创建,或者使用 list() 函数。列表中的元素之间用逗号 , 分隔。
# 使用方括号创建列表
my_list = [1, 2, 3, "Python"]
# 使用列表推导式创建列表
squares = [x**2 for x in range(10)] # 生成一个包含0到9平方的列表
# 使用 list() 函数创建列表
another_list = list((1, 2, 3, "Python"))
# 直接创建空列表
empty_list = []
1.2 访问列表元素
你可以通过索引来访问列表中的元素,索引从0开始。
# 访问第一个元素
first_element = my_list[0]
# 访问最后一个元素
last_element = my_list[-1]
# 使用负索引访问元素
second_last_element = my_list[-2]
1.3 修改列表元素
列表是可变的,所以你可以直接通过索引来修改元素。
# 修改第一个元素
my_list[0] = "Hello"
# 修改最后一个元素
my_list[-1] = "World"
1.4 添加元素
你可以使用 append() 方法在列表末尾添加一个元素,或者使用 extend() 方法将另一个列表的元素添加到当前列表末尾。
# 在列表末尾添加一个元素
my_list.append("New Element")
# 将另一个列表的元素添加到当前列表末尾
my_list.extend([4, 5, 6])
1.5 删除元素
使用 remove() 方法删除列表中的特定元素,或者使用 pop() 方法删除并返回指定索引的元素。
# 删除列表中第一个匹配的元素
my_list.remove("Python")
# 删除并返回指定索引的元素
removed_element = my_list.pop(1) # 删除索引为1的元素
1.6 切片
列表切片允许你访问列表的一部分。切片操作不会修改原始列表,而是返回一个新的列表。
# 获取子列表
sub_list = my_list[1:4] # 从索引1到索引3(不包括索引4)
1.7 遍历列表
使用 for 循环遍历列表中的所有元素。
for element in my_list:
print(element)
# 使用 while 循环遍历
index = 0
while index < len(my_list):
print(my_list[index])
index += 1
注意事项 列表索引是0-based,这意味着第一个元素的索引是0,第二个元素的索引是1,依此类推。 尝试访问超出列表长度的索引将导致 IndexError。 修改列表时要小心,尤其是在遍历列表的同时进行添加或删除操作,因为这可能会导致意外的行为。 列表推导式和内置方法(如 map(), filter(), reduce())可以使代码更简洁,但在处理大型数据集时要注意性能。 在使用 del 语句删除元素时,要确保不会意外删除错误的元素。 列表可以包含不同类型的元素,这使得它们在存储和操作数据时非常灵活。
1.8 列表的操作方法
1. `append(obj)` - 添加元素到列表末尾
my_list = [1, 2, 3]
my_list.append('a') # my_list 现在是 [1, 2, 3, 'a']
2. `extend(iterable)` - 将另一个可迭代对象的元素添加到列表末尾
my_list = [1, 2, 3]
my_list.extend(['a', 'b', 'c']) # my_list 现在是 [1, 2, 3, 'a', 'b', 'c']
3. `insert(index, obj)` - 在指定位置插入元素
my_list = [1, 2, 4]
my_list.insert(2, 'b') # my_list 现在是 [1, 2, 'b', 4]
- insert和extend的区别:
- insert可以指定插入元素的位置,extend不能指定,只能合并到末尾
- insert是在原列表的基础上增加元素,什么都可以加(列表、字符串……),extend只能合并2个列表,对列表进行扩展,不能添加字符串
4. `remove(obj)` - 删除列表中第一个匹配的元素
my_list = [1, 2, 3, 4]
my_list.remove(3) # my_list 现在是 [1, 2, 4]
5. `pop([index])` - 删除并返回指定位置的元素,如果不指定索引,则删除最后一个元素
my_list = [1, 2, 3, 4]
popped_element = my_list.pop(1) # my_list 现在是 [1, 3, 4],popped_element 是 2
last_element = my_list.pop() # my_list 现在是 [1, 3],last_element 是 4
6. `clear()` - 移除列表中的所有元素
my_list = [1, 2, 3]
my_list.clear() # my_list 现在是 []
7. `reverse()` - 反转列表中的元素顺序
my_list = [1, 2, 3]
my_list.reverse() # my_list 现在是 [3, 2, 1]
8. `sort([key], [reverse])` - 对列表进行排序。`key` 是一个函数,用于从列表中的每个元素中提取比较键值;`reverse` 是一个布尔值,指定排序是升序还是降序。
my_list = [4, 1, 3, 2]
my_list.sort() # my_list 现在是 [1, 2, 3, 4]
my_list.sort(reverse=True) # my_list 现在是 [4, 3, 2, 1]
9. `copy()` - 返回列表的浅拷贝
my_list = [1, 2, [3, 4]]
shallow_copy = my_list.copy() # shallow_copy 现在是 [1, 2, [3, 4]]
10. `count(obj)` - 返回列表中匹配指定元素的次数
my_list = [1, 2, 2, 3, 2]
count = my_list.count(2) # count 是 3
11. `index(obj[, start[, end]])` - 返回列表中第一个匹配指定元素的索引。如果存在多个匹配项,还可以通过 `start` 和 `end` 参数来指定搜索范围。
my_list = [1, 2, 3, 4, 5]
index = my_list.index(3) # index 是 2
12. `len(list)` - 返回列表中元素的数量
my_list = [1, 2, 3]
length = len(my_list) # length 是 3
13. `cmp(list1,list2)` -用于比较两个列表的元素
如果比较的元素是同类型的,则比较其值,返回结果。
如果两个元素不是同一种类型,则检查它们是否是数字。
- 如果是数字,执行必要的数字强制类型转换,然后比较。
- 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
- 否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0
list1, list2 = [123, 'xyz'], [456, 'abc']
print cmp(list1, list2); # 输出 -1
print cmp(list2, list1); # 输出 1
list3 = list2 + [786]; #
print cmp(list2, list3) # 输出 -1
list4 = list1.copy()
print cmp(list1,list4) # 输出 0
14. `max(list)` - 返回列表元素中的最大值。
list1, list2 = ['123', 'xyz', 'zara', 'abc'], [456, 700, 200]
print "Max value element : ", max(list1); # 输出 zara
print "Max value element : ", max(list2); # 输出 700
15. `min(list)`:返回列表元素中的最小值。
list1, list2 = [123, 'xyz', 'zara', 'abc'], [456, 700, 200]
print "min value element : ", min(list1); # 输出 123
print "min value element : ", min(list2); # 输出 200
16. `+` 操作符:用于生成一个新的组合列表。
# 使用 + 拼接
my_list = (1,2,3) + (4,5,6) # my_list= (1,2,3,4,5,6)
17. * 操作符:用于生成一个新的重复列表。
# 使用 *
l1 = [1,2,3]
my_list = l1 *4 # my_list = [1,2,3,1,2,3,1,2,3,1,2,3]
注意事项 当使用 append() 和 extend() 方法时,原始列表会被修改。 remove() 方法只会删除找到的第一个匹配元素。如果列表中有多个相同的元素,其他匹配元素不会被删除。 pop() 方法在没有指定索引时,会删除列表的最后一个元素。如果你想删除特定位置的元素,应该提供索引参数。 sort() 方法会修改原始列表。如果你需要保留原始列表的顺序,可以使用 sorted() 函数,它会返回一个新的排序后的列表。 列表推导式可以包含复杂的表达式和条件,但应谨慎使用以保持代码的可读性。 列表推导式通常比使用循环创建列表更快,但也要注意不要创建过于复杂的推导式,以免降低代码的可维护性。
1.9 列表推导式
列表推导式提供了一种简洁的方式来创建列表,它是基于已有列表生成新列表的强大工具。
# 基本列表推导式
squares = [x**2 for x in range(10)] # 生成一个包含 0 到 9 的平方的列表
# 带有条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0] # 只包含偶数的平方
# 使用函数作为推导式的 key
transformed = [abs(x) for x in [-1, -2, -3]] # 将负数转换为正数
1.10 列表的特点
列表(list)是Python中的一种内置数据结构,具有以下特点:
- 可变性:列表是可变的,这意味着你可以在创建后添加、删除或更改元素。
- 有序性:列表中的元素按照它们被添加的顺序进行存储和访问。
- 元素重复性:列表可以包含重复的元素。
- 支持多种数据类型:列表可以包含不同类型的数据,如整数、浮点数、字符串、甚至其他列表。
- 使用方括号:列表使用方括号 [] 来定义,元素之间用逗号 , 分隔。
- 索引和切片:列表支持索引和切片操作,允许你访问和操作列表中的特定部分。
- 丰富的内置方法:列表提供了多种内置方法,如 append(), extend(), insert(), remove(), pop(), del, clear(), copy(), len(), count(), index(), reverse(), sort() 等,这些方法使得操作列表变得非常方便。
- 动态大小:列表的大小是动态的,它可以根据需要自动增长或缩小。
- 性能:列表的某些操作(如在末尾添加元素)非常快速,但在列表中间插入或删除元素可能较慢,因为需要移动后续的所有元素。
- 迭代:列表可以被迭代,这使得它们在循环中非常有用。
- 嵌套:列表可以嵌套,即一个列表中的元素可以是另一个列表。
- 作为函数参数:列表常用于向函数传递多个参数,也可以作为函数的返回值。
相关推荐
- 笔记本电脑系统修复软件(笔记本电脑程序修复)
-
1、超级兔子2013系统修复软件超级兔子是一款完整的系统维护工具。拥有电脑系统评测、垃圾清理和注册表清理、可疑文件和插件检测、网页防护等功能,同时自带一些实用的系统工具,可清理你大多数的文件、注册表里...
- 联想保修服务包括哪些(联想保修都保修什么)
-
1、保修36个月的硬件包括:CPU、内存。2、保修24个月的硬件包括:主板、显卡、LCD屏、硬盘、电源适配器、键盘、鼠标模块。3、保修12个月的硬件包括:LCD之附件、光驱、DVD、CDR/W、软驱...
- 系统科学大会(中国系统科学学会)
-
2021年各种科学大会的召开时间取决于疫情的发展和国家政策的调整。一些大型的国际科学会议可能会推迟或者采用线上形式进行,以保障参会人员的安全和健康。同时,一些国内的学术会议也会受到疫情的影响,需要推迟...
- win10系统下载的内容在哪(win10下载的软件在哪个文件夹)
-
进入C:\Windows\SoftwareDistribution\Download目录下,通过win10应用商店中下载的安装包都放在此目录下。进入C:\Windows\SoftwareDistrib...
- 下载原版xp系统光盘(xp光盘系统安装教程怎么安装)
-
方法步骤步骤如下:1、首先打开计算机,在电脑光驱上放入XP光盘,启动电脑后不停按F12、F11、Esc等启动热键,在弹出的启动菜单中选择DVD选项,回车。2、进入光盘主菜单,按数字2或点击选项2运行w...
- windows7中文版下载安装(windows7安装包下载)
-
谢邀,如果你戳设置-时间和语言-区域和语言,右边的语言提示“只允许使用一种语言包”,那么你的系统就是家庭中文版。家庭中文版限定系统界面只能使用简体中文显示,其他功能则与普通家庭版没有区别,也可以使用其...
- win7开机按f2怎么重装系统(win7开机按f12怎么重装系统)
-
开机或重启时,在进入Windows前按F2进入BIOS。 ←→移动到第三个好像是BOOT。 然后将EXTENELBOOT选项设置为ENABLE 最后按F5将第一启动项目设置为EXTENEL...
-
- win10驱动管理(win10驱动程序)
-
win10由于联网后会自动安装驱动,如果自动安装驱动没出现问题,即可视为最佳驱动,若出现问题,卸载出问题的驱动,然后去查自己主板型号,在主板供应商官网下载对应驱动即是最佳01Windows10驱动更新调整当前当你插入连接即插即用(Pn...
-
2025-12-29 05:51 off999
- 手机上怎么找qq邮箱登录(用手机怎么找到qq邮箱)
-
入口是“联系人”选项卡。qq邮箱手机在QQ主菜单中选择下方的“联系人”选项卡;3、在“联系人”中选取“公众号”选项卡;4、在公众号中菜单中找到或搜索“QQ邮箱提醒”,点击进入;5、点击“进入邮箱”;6...
- amd显卡控制面板
-
AMD显卡控制面板是用来管理你的AMD显卡的,可以在控制面板中进行设置一些简单的调整,来提升显卡性能和效果。1、先打开AMD控制面板。2、打开“垂直同步(V-SYNC)”功能,可调整细节,改善影像流畅...
- win10老是未响应卡死(window10总是未响应)
-
具体方法:1、如果win10中的应用程序出现不响应的情况,应该是应用程序加载失败了。可以通过重置方法来解决win10应用程序无响应。2、登录win10系统,用管理员身份运行Powershell(可在C...
- usb安装系统步骤(USB安装系统步骤)
-
1.准备一张U盘,将联想官网下载的系统镜像文件复制到U盘中;2.将U盘插入联想S41U电脑,重启电脑,按F12进入BIOS设置,将U盘设置为启动项;3.重启电脑,进入U盘安装界面,按提示操作,完成系统...
- win98安装教程(win98iso怎么安装)
-
如何安装windows98 一、具体安装步骤 备份好重要文件之后,就可以安装windows98了。 第一步:启动安装程序。 用户如果原来已安装了windows95/97/98,现在拟对其进行升...
- 雨林木风win7安装(雨林木风win732位安装教程)
-
安装步骤如下: 1、光盘放入光驱,复制光盘上的win7.gho和安装系统.exe到硬盘非C盘的文件夹;(gho文件名可以是其他名字,后缀为gho,体积最大的就是。) 2、双击安装系统.exe;...
- win10解绑管理员账户(win10管理员账户怎么取消开机密码)
-
要解除Windows10电脑上的管理员权限,您需要进行以下操作:1.打开“控制面板”:右键单击“开始”按钮,然后选择“控制面板”。2.进入“用户账户”:在控制面板中,选择“用户账户”。3.点击...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
