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

什么是Python列表(python中的列表)

xsobi 2025-04-08 20:15 18 浏览

列表是一个任意类型的对象的位置相关的有序集合,它没有固定大小,是可变的,与数组类似。列表中的元素没有固定类型的限制,可以由任意对象来构成,是Python语言中一种高频使用的数据类型。

其定义方式如下:

Bash
 anyList=[object,object,object]
 print(type(anyList))

代码示例说明:object对象的指任意数据类型,比如[]中的值可使用前面讲到的 int、float、str或者list本身以及后面讲到的元组、字典、集合、类等。

列表中可以装载了多组不同数据类型的数据。

Bash
 class V():
     pass
 # 混合构成的列表
 mixList = [
     123,  #int,数字类型
     "qwentest123",  # string,字符串
     3.1415926,  # float,浮点型
     [0,1,2,3,4,5,6,7,8,9],  # list,列表
     (1,2,3),  # tuple,元组
     {'name': 'qwentest123', 'searchV': True}# dict,字典
     V()  #对象
 ]
 print(typc(mixList))

代码示例说明:定义了一个V()的类(pass为不做任何事即跳过),然后在mixList中分别存放了整型、字符串、浮点型、列表、元组、字典以及类的实例,但它输出的结果仍然是一个列表类型。 需要注意的是,列表内容不会像mixList一样存在多个不同类型的对象,这样操作并不利于代码的计算,所以尽量让一个列表的元素拥有相同的数据类型是一个通用的做法。

1.如何对列表进行切片

列表是一个序列数据类型,跟字符串一样,它支持下标取值和切片的方法。

 list=[
     'I',
     'l', 'o', 'v', 'e',
     'm', 'y',
     'c', 'o', 'u', 'n', 't', 'r', 'y',
     'd', 'e', 'e', 'p',
     [1,2,3]
 ]
 
 #下标取值
 print(list[0], list[-1])  # 切片取值
 print(list[1:5])  # 链式取值
 print(list[-1][0])
 print(list[-1][0:2])
 print(list[list.index('c'):list.index('d')][:])

代码示例说明:list中存放了I love my country deep这个字符串,同时也存放了一个列表[1,2,3]。前面说过下标法和切片法能够直接使用,所以 list[0]和 list[-1]的值为Ⅰ和[1,2, 3],list[1:5]的值为['I', 'o', 'v', 'e']。

在取最后一个值的时候list[-1][0]相当于a = list[-1];print(a[0]),即list[-1]时返回[1,2, 3]的值,然后在这个返回的值的对象中再使用下标法去获取第0个位置的值。这种方法称之为链式表达。

list.index()str.index()的作用类似,也就是取指定元素值在变量中存在的第一个位置。需要注意的是[:]意为取整个内容。

链式表达的方法有很多,总结起来就是在前面一个表达式的基础上再利用其拥有的属性或者方法,再去使用相关的表达式。

2.列表常用的操作方法

列表的常用方法,主要集中在对列表进行增加、修改、删除、排序方面。因为,列表是 一个可变的数据类型,它可以与条件语句、循环语句等进行深度结合。

列表的常用操作方法:

 list=[
     'I',
     'l', 'o', 'v', 'e',
     'm', 'y',
     'c', 'o', 'u', 'n', 't', 'r', 'y',
     'd', 'e', 'e', 'p',
     [1,2,3]
 ]
 
 list2=['拼接]
 print("两个列表的拼接的结果={}".format(list +list2))
 print('-----------------------------')
 # 插入一个对象到列表中
 list.insert(2,1111)
 print('插入对象后的结果={}}'.format(list))
 print('-----------------------------')
 # 追加一个对象到列表的末尾
 list.append('hello append')
 print('追加对象后的结果={}'.format(list))
 print('-----------------------------')
 # 删除某个位置的对象
 list.pop(2)
 print('删除对象后的结果={}'.format(list))
 print('-----------------------------')
 # 一般不修改list,如果想要修改,采用下标赋值的方法即可
 list[-2] = None
 print('修改对象后的结果={}'.format(list))
        
 newList-[1,2,3]
 #列表的排序
 newList.sort()
 print('-----------------------------')
 print('列表顺序排列={}'.format(newList))
 newList.sort(reverse=True)
 print('-----------------------------')
 print(列表倒序排列={}'.format(newList))
 newList.reverse()
 print('-----------------------------')
 print('将列表的对象倒置={}'.format(newList))

代码说明:列表的拼接跟字符串一样,使用+号连接符即可;通常来说,列表较少使用list.insert()的万法,因为在某个位置去插入对象,没有意义,列表在内存中存放是无序的,所以经常使用的方法是 list.append(),即向列表的尾部追加一个对象;删除对象和修改对象也是基本不用到的方法,了解即可;另外,就是列表的排序和倒置,在做笔试题的时候经常碰到,所以需要掌握。

特别说明,列表最常用的方法是list.append()方法。

3.把列表中的内容全拿出来

通常说来实际工作中经常需要从列表中选取一部分内容来参与下一组运算。

 L=[[2,5,8],[3,6, 9],[1,4,7],[3,2,1]]
 
 newList=[]
 for i in L:
     newList = newList +i
 print(newList)

代码说明:该示例是某公司的测试笔试题之一,只需要使用for in语句遍历列表,然后使用+号链接符将L中每一个元素的列表中的元素组成一个新的列表,然后对新列表中的数据继续进行条件选择,比如选取大于3小于8的数,则代码如下:

 L=[[2,5,8],[3,6,9],[1,4,7],[3,2,1]]
 newList=[]
 for i in L:
     newList = newList+i
 
 getList = []
 for i in newList:
     if i> 3 and i<8:
         getList.append(i)
 print(getList)

代码说明:从新的newList中去遍历,并结合后面讲到的条件语句,使用list.append()方法去追加到一个新的列表中,最后再输出。先定义一个空列表,然后使用for in语句、if语句,最后再向列表中追加数据,这种数据结构的操作方法,在Python中广泛应用,同时也是自动化测试经常使用到的方法。

4.优雅的列表推导式

列表推导式是一种较高级的表达方法,它将多行代码简写成一行代码,代码如下:

 L = [5,6,4,7]
 
 # 原语句
 # newL1=0
 # for i in L:
 #   newL1.append(i)
 # print(newLl)
 
 #遍历每一个数,然后将每个数参与乘法运算
 print([i *10 for i in L])
 
 #原数和二次方根组成一个二维数组
 print([[i,i**2] for i in L])
 #选出大于3的数,用来再*3
 print([3 * x for x in L if x>3])

代码说明:列表推导式其语法结构为[变量参与运算 for 变量 in 列表J,从 for in开始理解,再到变量参与运算结束。相比于原有四行语句的表达方法,更加简洁而且优雅。

相关推荐

大模型技术:详解LangGraph,从基础到高级

图片来自DALL-E3LangChain是构建由Lardge语言模型提供支持的应用程序的领先框架之一。借助LangChain表达语言(LCEL),定义和执行分步操作序列(也称为链)变得更加简...

SQL知识大全三):SQL中的字符串处理和条件查询

点击上方蓝字关注我们今天是SQL系列的第三讲,我们会讲解条件查询,文本处理,百分比,行数限制,格式化以及子查询。条件查询IF条件查询#if的语法IF(expr1,expr2,expr3)#示例S...

聊聊Spring AI Alibaba的PdfTablesParser

序本文主要研究一下SpringAIAlibaba的PdfTablesParserPdfTablesParsercommunity/document-parsers/spring-ai-alibab...

SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?

Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(ro...

MySQL合集-单机容器化

MySQL单机容器化mkdir-p/opt/mysql/{data,etc}cpmy.cnf/opt/mysql/etc#dockersearchmysqldockerpullm...

差异基因分析不会做?最简单的火山图做法,一秒学会

最近很多刚了解生信的同学问喵学姐:看了一些文献,文献里的各种图怎么看呀,完全看不懂。今天喵学姐就来给大家讲一讲我们平时做的最基础的差异分析——火山图火山图(Volcanoplot)是散点图的一种,它...

每分钟写入6亿条数据,携程监控系统Dashboard存储升级实践

一、背景概述框架Dashboard是一款携程内部历史悠久的自研监控产品,其定位是企业级Metrics监控场景,主要提供用户自定义Metrics接入,并基于此提供实时数据分析和视图展现的面板服务,提供...

高效开发库:C++ POCO库开发者使用指南

目录POCO库简介POCO库的特点POCO库的模块分类POCO库的应用场景各模块功能详解与代码示例1.POCO库简介POCO(PortableComponents)是一个开源的C++类库,旨在为开...

Oracle中JDBC处理PreparedStatement处理Char问题浅析

最近碰到一个奇怪的问题,同样的Java代码,在不同的数据库执行,结果集却不同?代码片段如下:表的定义:SAMPLE_TABLE(IDINTEGER,NAMECH...

mp4封装格式各box类型讲解及IBP帧计算

mp4封装格式各box类型讲解及IBP帧计算目录;总结送学习大纲零基础到实战boxftypboxmoovboxmvhdbox(MovieHeaderBox)trakbox(Track...

「猪译馆」ASFV在不同基质中的存活时间(一)

作者Author欧洲食品安全署EuropeanFoodSafetyAuthority(EFSA),AndreaGervelmeyer欧盟委员会委托欧洲食品安全署对非洲猪瘟病毒在不同基质中...

视频封装格式:MP4格式详解

1.MP4格式概述1.1简介MP4或称MPEG-4第14部分(MPEG-4Part14)是一种标准的数字多媒体容器格式。扩展名为.mp4。虽然被官方标准定义的唯一扩展名是.mp4,但第三方通...

音视频八股文(10)-- mp4结构

介绍mp4文件格式又被称为MPEG-4Part14,出自MPEG-4标准第14部分。它是一种多媒体格式容器,广泛用于包装视频和音频数据流、海报、字幕和元数据等。(顺便一提,目前流行的视频编码格式...

大数据ClickHouse进阶(九):ClickHouse的From和Sample子句

#头条创作挑战赛#ClickHouse的From和Sample子句一、From子句From子句表示从何处读取数据,支持2种形式,由于From比较简单,这里不再举例,2种使用方式如下:SELECTcl...

一文读懂MP4封装格式

简介MP4或称MPEG-4第14部分(MPEG-4Part14)是一种标准的数字多媒体容器格式。扩展名为.mp4。虽然被官方标准定义的唯一扩展名是.mp4,但第三方通常会使用各种扩展名来指示文件的...