百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

python序列之列表详解

liuian 2025-03-06 16:49 22 浏览

Python中除了字符串外,还有另外两种序列:列表和元组,他们都可以包含零个或多个元素,而且并不要求所含元素的类型相同,每个元素都可以是任何Python类型对象。

为什么Python要同时设计列表和元组这两种序列结构呢?这是因为元组和字符串类似是不可变的,当你给元组赋值时,这些值便会被固定在元组中而无法修改。而列表是灵活可变的,可以随意插入或者删除其中的元素,结构更灵活,用处也更强大。

一:列表创建

使用[ ]或者list[ ]创建列表

number=[1,2,3]
s=['lily','jude']
mix=[1,'hello',[1,2,3],3.14]      #混合列表
empty=[]                                #也可以创建一个空的列表
> list('jude')                            # 使用list函数创建
['j','u','d','e'] 

二:列表操作

2.1,通过索引获取元素,索引值从0开始

name=['lucy','lily',['china','usa'],'007','anna','mei']
name[0] >>> 'lucy'
name[1] >>> 'lily'
name[-1] >>> 'mei'  #获取最后一个元素,依次类推
name[2][1] >>>'usa'   #针对嵌套的列表结构,可多次通过索引获取

2.2,列表分片获取

当需要从列表一次性取出多个元素时,需要通过列表分片的方式来实现,

其基本形式是:列表名[左索引值:右索引值],左右索引值都可以省略,

左索引值省略时表明,列表元素从0开始,右索引值省略表示包含左索引值右边的所有元素。

注意:分片其实是创建原列表的一个拷贝

member = ['php','python','java','sql']        
member[1:3] >>>['python','java']            #member本身元素并没有发生变化,相当于生成了包含元素1和2的新列表
member[:3] >>>['php','python','java']     #表示从第0个索引值开始
member[1:] >>>['python','java','sql']       #表示从左索引值开始到列表右边所有元素
member[:] >>>['php','python','java','sql']      #相当于复制了一份原列表

分片操作可以接收第三个参数,也就是步长,格式如下:[start:end:step],

step在不指定时默认为1

numb=[1,2,3,4,5,6]
numb[0:6:2] >>>[1,3,5]
numb[::2] >>>[1,3,5]
numb[::-1] >>>[6,5,4,3,2,1]       #相当于复制一个反转的列表

2.3,列表复制

三种方法都可以将一个列表的值复制到一个新的列表

  • copy()函数 用于拷贝一个列表
  • list()函数转换
  • 列表分片[ : ]
list1 = [123,456]
list2 = list1.copy()  
#则list2的值也变为[123,456] 它的功能和列表分片功能 list2 = list1[:]作用是一样的;
#他们两个与赋值运算符=是有区别的,前者是在内存中重新申请一个空间并存放列表的值,
=则是将列表的地址直接赋值给了另一个列表,
举例说明两者带来的区别:
list1 = [1,3,5]
list2 =list1
list3 = list1.copy()
list1.append('python')
list2 >> [1,3,5,'python']
list3 >> [1,3,5]

2.4,列表排序


经常需要将列表按元素值进行排序,python提供了两个函数

  • list.sort(reverse=False) :直接改变原列表结构,默认升序排列,
  • sorted(list) :返回排序后的结果,相当于复制了一个列表,原列表不变

如果列表中元素都是数字,会默认安装从大小大的升序排列,如果元素都是字符串,则会按照字母表顺序排列。

进阶用法:

sort(func,key,reverse) func和key分别设置排序的算法和关键字,

reverse=False表示正序排列,为True颠倒顺序,默认正序

a=[1,5,3,99,6]
a.sort()  
a >> [1,3,5,6,99]
sorted(a)           #内置函数sorted,返回排序后的结果,相当于复制了一个列表,原列表不变
>> [1,3,5,6,99]

2.5,添加元素

  • append(str):添加元素至列表尾部
  • extend([]):将一个列表合并到另一个列表中,等价于 +=
  • insert(index,str):在指定位置插入元素
>>> number=['lucy','lily']
#append函数将元素添加到列表末尾
>>> number.append('007') 
    ['lucy','lily','007'] 
#extend函数将列表添加到列表的末尾
>>> number.extend(['anna','mei']) #等价于 number+=['anna','mei']  
    ['lucy','lily','007','anna','mei']
#insert()方法
>>> number.insert(0,'ken')
    ['ken','lucy','lily','007','anna','mei']
**连接操作符,两个列表直接相加可以得到合并之后的新列表
a,b=[1,2],[3,4]
>>> a+b
    [1,2,3,4]
>>> a*2 
    [1,2,1,2]

2.6 删除列表元素

  • remove(str):删除指定值的元素
  • del(index) : 删除指定位置的元素
  • pop(num=-1) :删除指定位置的元素(默认删除最后一个元素),该函数返回删除的元素
  • clear() :用于删除列表中的所有元素,变成一个空的列表
name=['lucy','lily','007','anna','mei']
>>> name.remove('lucy')
    ['lily','007','anna','mei']

>>> del name[1]
    ['lily','anna','mei']

>>> name.pop() 
'mei'
>>> name
['lily','anna']
>>> name.pop(1)
    'anna'
>>> name
['lily']

list1 = [1,1,2,3,4]
>>> list1.clear() 
>>> list1
    []

2.7,使用in判断值是否存在

判断列表中是否存在该元素,存在返回True

name=['lucy','lily','007','anna','mei']
>>> '007' in name
True

2.8,使用join()转换为字符串

注意:join()其实是字符串方法,不是列表的方法,不能通过suit.join()进行调用。

join() 是字符串分割split()的逆过程

suit=['apply','orange','peer']
>>> '# '.join(suit)
'apply# orange# peer'

2.9,元素计数

使用count()可以计算某一个特定元素在列表中出现的次数

#count计算参数在列表中出现的次数
list1.count(1) >>> 2 

2.10,获取列表长度及列表反转

  • len():返回列表的长度
  • reverse():没有返回值,对原列表的进行反转而不是复制一个
list1=[1,2,3,1,4]
#计算元素个数
>>> len(list1) 
5 
#列表反转
>>> list1.reverse() 

>>> list1
[4, 1, 3, 2, 1]

相关推荐

搭建一个20人的办公网络(适用于20多人的小型办公网络环境)

楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...

笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)

1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...

汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)

使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...

xpsp3安装版系统下载(windowsxpsp3安装教程)

xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...

没有备份的手机数据怎么恢复

手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。  2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。  3、...

电脑怎么激活windows11专业版

win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...

华为手机助手下载官网(华为手机助手app下载专区)

华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...

光纤线断了怎么接(宽带光纤线断了怎么接)

宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...

深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
win7旗舰版和专业版区别(win7旗舰版跟专业版)

1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...

万能连接钥匙(万能wifi连接钥匙下载)

1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...

雨林木风音乐叫什么(雨林木风是啥)

雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...

aics6序列号永久序列号(aics6破解序列号)

关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...

win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)

答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...