Python中列表的基本操作汇总
作者:遇安.112 发布时间:2021-08-20 23:21:27
1、列表的创建与遍历
与整数和字符串不同,列表要处理一组数据。因此,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表对象,只会对原有列表生成一个新的引用。
#创建列表
list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
list[0]=0
print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
print("====================================")
length=len(list)#获取列表长度
#遍历
i=0
#为了方便后续操作的观察,这里采用不换行输出
while(i<length):
if (i < length-1):
print(list[i], end=',')
else:
print(list[i],end='')
print()
i+=1
print("====================================")
for x in list:
if (x <length):
print(x, end=',')
else:
print(x,end='')
print()
# print(x)
print("====================================")
2、添加元素
列表可以使用append()、extend()或insert()方法来添加元素
2.1、append()方法
在列表末尾添加新的元素
语法格式:list.append(obj)
其中,list表示列表,obj表示添加到列表末尾的对象
#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6]
2.2、extend()方法
在列表末尾一次性添加另一个序列中的多个值(用新列表扩展原来的列表)
语法格式:list.extend(seq)
其中,list表示列表,seq表示添加到列表末尾的序列
#在列表末尾一次性添加另一个序列中的多个值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
2.3、insert()方法
将指定对象插入到列表的指定位置
语法格式:list.insert(index,obj)
其中,list表示列表,index表示插入的索引位置,obj表示插入列表中的对象
#将元素添加到指定位置,例:在索引位置为1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
3、删除元素
在列表中,删除元素的常用方法有:del命令、pop()方法和remove()方法
3.1、del命令
根据索引删除列表中的元素
#根据索引删除元素,例:删除索引位置为0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
#使用分片的方式输出列表中的元素
del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]
3.2、pop()方法
根据索引删除列表中的元素,并返回该元素的值
语法格式:list.pop([index])
其中,list表示列表。index表示删除列表元素的索引值,为可选参数,缺省时为-1,删除列表中的最后一个元素。
#根据索引删除列表中的元素,并返回该元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
# print(list.pop())
# print(list)
3.3、remove()方法
remove()方法只能删除列表中某个值的第一个匹配项,如果要删除所有匹配的元素就需要搭配循环语句实现。
语法格式:list.remove(obj)
#删除某个值的第一个匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]
4、分片赋值
分片赋值就是以分片的形式给列表赋值,可以一次为多个元素赋值
#替换索引从1包括1开始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]
分片赋值还可以在不替换任何原有元素的情况下插入新的元素
#在索引为2的位置插入列表[4,5]
#[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]
分片赋值也可以删除元素
#删除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
print(num) #[1, 6]
5、列表排序
将列表中的元素排序的方法有3种,分别是reverse()方法、sort()方法和sorted()函数
5.1、reverse()方法
将列表中的元素反向存放
语法格式:list.reverse()
#将列表元素反转
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]
5.2、sort()方法
将列表中的元素进行排序(默认为升序)
语法格式:list.sort([key=None])[,reverse=False])
其中,list表示列表,key为可选参数,如果指定了该参数,会使用该参数的方法进行排序。reverse为可选参数,表示是否降序排序,缺省时为False
#将列表排序(默认为升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改为降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
#按元素长度进行排序(默认升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']
5.3、sorted()函数
与sort()方法不同,内置函数sorted()返回新列表,并不对原列表进行任何修改
语法格式:sorted(iterable[,key=None][,reverse=False])
其中,iterable表示可迭代对象,如列表。参数key和reverse的用法与sort()方法中的相同
#内置函数sorted()返回新列表,不对原列表进行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不变 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]
完整代码
list =[1,2,3,4,5]
list2=list
print(list==list2)# True 就算新建一个列表,然后将原有的值赋值给新的列表。新的列表和原列表还是指向的同一个地址
list[0]=0
print(list,list2) #修改list列表的同时也修改了list2,因为list和list2都是指向的同一个地址
print("====================================")
length=len(list)#获取列表长度
#遍历
i=0
#为了方便后续操作的观察,这里采用不换行输出
while(i<length):
if (i < length-1):
print(list[i], end=',')
else:
print(list[i],end='')
print()
i+=1
print("====================================")
for x in list:
if (x <length):
print(x, end=',')
else:
print(x,end='')
print()
# print(x)
print("====================================")
# 添加元素
print("添加元素:")
#在列表末尾添加元素
list.append(6)
print(list) ##[0, 2, 3, 4, 5, 6]
#在列表末尾一次性添加另一个序列中的多个值
list3=[7,8]
list.extend(list3)
print(list) #[0, 2, 3, 4, 5, 6, 7, 8]
#将元素添加到指定位置,例:在索引位置为1的地方插入1
list.insert(1,1)
print(list) #[0, 1, 2, 3, 4, 5, 6, 7, 8]
print("====================================")
#删除元素
print("删除元素:")
#根据索引删除元素,例:删除索引位置为0的元素
del list[0]
print(list) #[1, 2, 3, 4, 5, 6, 7, 8]
#使用分片的方式输出列表中的元素
del list[5:7] #包前不包后,5:7即删除索引为5、6的元素
print(list) #[1, 2, 3, 4, 5, 8]
#根据索引删除列表中的元素,并返回该元素的值
print(list.pop(5)) #8
print(list) #[1, 2, 3, 4, 5]
#如果没给索引,则默认删除列表最后一个元素。即弹栈/出栈
# print(list.pop())
# print(list)
#删除某个值的第一个匹配值
list.remove(3)
print(list) #[1, 2, 4, 5]
print("====================================")
#分片赋值
print("分片赋值:")
#替换索引从1包括1开始到最后的元素
list[1:]=[3,6,9]
print(list) #[1, 3, 6, 9]
#在索引为2的位置插入列表[4,5]
#[2:1]如果后面的1变成2或者更大的数,则会依次覆盖/删除插入位置后面的数
list[2:1]=[4,5]
print(list) #[1, 3, 4, 5, 6, 9]
#删除元素
num=[1,2,3,4,5,6]
print(num) #[1, 2, 3, 4, 5, 6]
num[1:5]=[] #用空列表替换列表中索引1到索引5(不含)的元素
print(num) #[1, 6]
print("====================================")
#列表排序
print("排序:")
#将列表元素反转
list.reverse()
print(list) #[9, 6, 5, 4, 3, 1]
#将列表排序(默认为升序)
list.sort()
print(list) #[1, 3, 4, 5, 6, 9]
#改为降序排序
list.sort(reverse=True)
print(list) #[9, 6, 5, 4, 3, 1]
#按元素长度进行排序(默认升序)
list4=["hello","P","yt","hon"]
list4.sort(key=len)
print(list4) #['P', 'yt', 'hon', 'hello']
#降序
list4.sort(key=len,reverse=True)
print(list4) #['hello', 'hon', 'yt', 'P']
print("---------------------------------------")
#内置函数sorted()返回新列表,不对原列表进行修改
list5=[5,3,4,2,1]
list5_new=sorted(list5)
print(list5==list5_new) # False 列表地址不一致
print(list5) #原列表不变 [5, 3, 4, 2, 1]
print(list5_new) #新列表按升序排列 [1, 2, 3, 4, 5]
#降序
list6=sorted(list5,reverse=True)
print(list6==list5) #False
print(list6) #[5, 4, 3, 2, 1]
来源:https://blog.csdn.net/qq_62731133/article/details/127260345


猜你喜欢
- 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
- apscheduler 模块安装apscheduler 模块pip install apschedulerapscheduler 模块介绍A
- 首先交代一下运行环境和工具版本:WIN10MINGW64ORACLEINSTANCCLIENT_18_3 x64Jetbrins Golan
- 1、简介AI 聊天机器人使用自然语言处理 (NLP) 来帮助用户通过文本、图形或语音与 Web 服务或应用进行交互。聊天机器人可以理解自然人
- 最近设计一个优惠券列表,有个属性是有效日期,因为空间有限,必须要把开始日期和结束日期在一行显示,这样就出现一排的数字,日期有好几种我们习惯的
- 本教学使用环境介绍伺服器端:Ubuntu 18.04 LTS资料库:Mariadb 10.1.34(Mysql)语言版本:php 7.3本机
- 更改mysql密码-- 查询用户权限show grants for 'root'@'%';update my
- 本文实例讲述了C#简单查询SQLite数据库是否存在数据的方法。分享给大家供大家参考,具体如下://sqlite数据库驱动组件using S
- 前言在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤一般地,我们去网上批量打开壁纸的时候一般操作如下:1、打开壁纸网页2、
- 微信扫码支付分为两种模式,模式一比较复杂,需要公众号配置回调地址。模式二比较简单,只需要在代码中配置回调地址就可以了。我这次使用的是模式二。
- 1、跳过迭代对象的开头string_from_file = """ // Wooden: ...
- --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --
- 抽象基类的常见用途:实现接口时作为超类使用。然后,说明抽象基类如何检查具体子类是否符合接口定义,以及如何使用注册机制声明一个类实现了某个接口
- 1、检测登录状态base.pydef checkLogin(func):""" 查看session
- 目录1.函数的介绍2.函数的定义和调用3.函数的参数4.参数的分类4.1.位置参数4.2.关键字参数4.3.缺省参数4.4.不定长参数1.不
- 不使用int()函数的情况下把字符串转换为数字,如把字符串"12345"转换为数字12345。方法一:利用str函数既然
- ./runInstaller 启动图形化报错 PRVF-0002 : Could not retrieve local nodename.
- 近期因工作需要,需对几十万条商品和订单数据进行初步的数据分析,本来尝试过用Excel,但是数据量一旦超过10万条,Excel和电脑的性能瓶颈
- 本文实例讲述了python类装饰器用法。分享给大家供大家参考。具体如下:#!coding=utf-8 registry = {} def r
- 修改密码://选择数据库use mysql;//修改密码update user set password=password('新密码