List 列表

文章目录

  • 一、什么是 List 列表
    • 1.1 创建 List 列表的方式
    • 1.2 列表的新增函数方法
    • 1.3 列表的删除函数方法
    • 1.4 修改列表数据的方法
    • 1.5 列表的查询函数方法
    • 1.6 列表的排序和反序
    • 1.7 列表的复制

一、什么是 List 列表

  • List 列表:该数据类型定义的变量可以理解为是一个数据的集合,可以有序的存储一些数据,并且没有数据类型的要求,可以多种数据类型同时存储。(相当于Java 中的数组)

1.1 创建 List 列表的方式

  • 直接创建

    • 语法格式
      •  	a = [1]b = [a,1,'abc',True,1.23]print(b)
        
        • 运行结果:在这里插入图片描述
  • 函数创建

    • list(): 创建一个空列表
      • range(start, stop[, step]): 搭配 list() 使用,在创建列表时向列表中添加内容
        • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
        • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
        • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
          • 代码示例:
            •    	#list(可迭代对象)a = list() # 创建一个空的列表对象print(a)print(list(range(10)))#只添加一个数字,默认为起始位置为0,此数字为终止位置print(list(range(0,10)))print(list(range(1, 11)))print(list(range(0, 30, 5)))# 步长为5print(list(range(0, -10, -1)))# 负数# 起始位置小于等于终止位置显示为空print(list(range(0)))print(list(range(1,0)))
              
              • 运行结果:在这里插入图片描述



1.2 列表的新增函数方法


  • append(x) 新增方法: 向列表中新增内容,原地修改列表对象,是真正的列表尾部添加新的元素,速度最快,推荐使用
    • 代码示例:
      •  	a = list() # 创建一个空的列表对象a.append(1)a.append(2)print(a)
        
        • 运行结果
          在这里插入图片描述

  • extend() 合并方法: 将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象

    • 注意:
             需要的是一个可迭代对象
             如何需要两个列表合并的时候那么推荐使用extend() 他不会去创建新的对象
    • 代码示例:

      •  	a = list() # 创建一个空的列表对象a.append(1)a.append(2)print(a)b = ["a","b","c"]b.extend(a)print(b)
        
        • 运行结果在这里插入图片描述

  • insert(index,object): 根据下标在指定位置插入数据。index: 表示下标,在那个位置插入数据。object: 表示对象,具体插入那个数据 。

    • 注意:
             这样会让插入位置后面所有的元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。类似发生这种移动的函数还有:remove()、pop()、del(),它们在删除非尾部元素时也会发生操作位置后面元素的移动
      • 代码示例:
        •  	b = ["a","b","c"]b.insert(1,"123456")print(b)
          
          • 运行结果
            在这里插入图片描述




1.3 列表的删除函数方法


  • del 关键字: 删除列表指定位置的元素或者直接删除变量。不建议使用

    • 代码示例:
      •  	a=[10,20,30]del a[1]  # 也可以使用切片删除print(a) # 运行结果:[10, 30]del aprint(a) # 运行结果:因为列表被删除,打印报错
        

  • pop(index)方法: 删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素

    • 代码示例:
      •  	a=[10,20,30]print(a.pop(1))# 运行结果: 20
        

  • remove(obj)方法: 删除首次出现的指定元素,若不存在该元素抛出异常
    • 代码示例:
      •  	a = [10,20,30,66]a.remove(10)print(a)# 运行结果 :[20, 30, 66]
        

  • clear()方法: 清空列表
    • 代码示例:
      •  	a = [10,20,30,66]a.clear()print(a)# 运行结果 :[]
        




1.4 修改列表数据的方法

  • list[index] = value: 直接通过下标修改
    • 代码示例:
      •  	a = [10,20,30,66]a[1] = 50print(a)# 运行结果 :[10, 50, 30, 66]
        




1.5 列表的查询函数方法

  • 通过下标获取列表元素

    • 可以通过索引直接访问元素,索引的区间在[0,列表长度-1]这个范围,超过这个范围则会抛出异常
      •  	a = list() # 创建一个空的列表对象a = list(range(10))print(a[5])print(a)
        
        • 运行结果在这里插入图片描述

  • 获得指定元素在列表中首次出现的索引

    • index(value,[start,[end]]): value为传入参数,start和end指定了搜索的范围,如果列表中不存在该参数,或者指定的范围没有改参数,那么报错
      •  	a = ["a","b","c","d","e"]print(a.index("a"))print(a.index("a",1,2))
        
        • 运行结果在这里插入图片描述

  • count(value): 计算value在列表中出现的次数,value为传入参数

    •  	a = [10,20,30,66,10]print(a.count(10))# 运行结果: 2
      

  • max(list): 计算出列表中的最大值

    •  	a = [10,20,30,66,10]print(max(a))# 运行结果 : 66
      

  • min(list): 计算出列表中的最小值

    •  	a = [10,20,30,66,10]print(min(a))# 运行结果 : 10
      

  • sum(list): 计算列表中全部数据的总和,需要是数字类型

    •  	a = [10,20,30,66,10]print(min(a))# 运行结果: 136
      


1.6 列表的排序和反序

  • sort(): 可以直接对列表进行从小到大的排序,直接对原有的列表进行排序
    • 代码示例:
      •  	a = [10,20,30,66,10]a.sort()print(a)# 运行结果 :[10, 10, 20, 30, 66]
        




  • sorted(list)内置函数: 不会改变原有的列表的,会生成一个新的列表
    • 代码示例:
      •  	a = [10,20,30,66,10]print(sorted(a))# 运行结果 :[10, 10, 20, 30, 66]
        




  • reverse()反转函数: 将列表中的内容从后向前展示
    • 代码示例:
      •  	a = [20,30,66,10]a.reverse()print(a)# 运行结果:[10, 66, 30, 20]
        




  • reversed()返回迭代器: 内置函数,reversed()也支持进行逆序排列,与列表对象reverse()方法不同的是,内置函数reversed()
    • 不对原列表做任何修改,只是返回一个逆序排列的迭代器对象

      • 代码示例:
        •  	a = [20,10,30,40]c = reversed(a)print(c)print(list(c))print(c)print(list(c))
          
          • 运行结果:
            在这里插入图片描述




1.7 列表的复制

  • copy(): 可以复制一个列表 这个新列表和原有的列表内容一样,但指向不同的内存空间
    • 代码示例:
      •  	x = [100,200,300]#x 和 y 指向同一个内存空间  会相互影响y = x # 等号是内存地址的赋值b = x.copy()print(b)x[0] = 1print(y)
        
        • 运行结果
          在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】已解决java.lang.NoClassDefFoundError异常

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.lang.NoClassDefFoundError异常 一、问题背景 java.lang.NoClassDefFoundError 是 Java 运行时环境(JRE)在尝试加载某个类时,但没有找到…

leetcode 200 岛屿数量

思路 就是深搜&#xff0c;将可以走到的都标为0 ##代码 class Solution {static int[][] to {{1,0},{0,1},{-1,0},{0,-1}};public int numIslands(char[][] grid) {// 深搜int result 0;for (int i 0; i < grid.length; i) {for (int j 0; j < grid[0].length; j)…

Flask-REXTx 学习笔记——2.字段掩码(Fields masks)

简介 字段掩码是一种在序列化和反序列化过程中使用的机制&#xff0c;用于控制哪些字段应该被包含或排除。在不同的上下文中&#xff0c;字段掩码可能有不同的实现和应用方式&#xff0c;但基本概念是相似的。以下是对字段掩码的一般理解&#xff1a; 选择性序列化&#xff1…

基于51单片机贪吃蛇小游戏

基于51单片机贪吃蛇小游戏 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.用74HC573驱动点阵显示游戏画面&#xff1b; 2.上电后贪吃蛇会自动寻食&#xff1b; 3.按下四个按键中的任何一个就手动寻食了&#xff1b; ​演示视频&#xf…

java实现两个不同对象的集合复制

场景&#xff1a; 我们开发中会遇到集合对象复制的场景&#xff0c;可以避免代码的重复编写 基于 com.alibaba.fastjson.JSON 实现对象集合的拷贝 对象定义&#xff1a;ObjectA属性&#xff1a;id&#xff0c;name&#xff0c;ageObjectB属性&#xff1a;id&#xff0c;name…

利用visibilitychange事件来处理页面可见性变

使用场景&#xff1a;可以利用visibilitychange事件来处理页面可见性变化&#xff0c;例如在页面不可见时暂停视频播放、更新页面数据等。 在Vue 3中&#xff0c;可以使用onBeforeMount和onUnmounted钩子函数来监听页面可见性变化&#xff0c;并执行相应的逻辑。 以下是在Vue …

库的制作 与 使用 (Linux下)

目录 动静态库的制作 前置知识 库的基本构造 问题 分析 要给什么文件 如何更好的让别人使用 库的生成 静态库的生成 makefile参考 动态库的生成 makefile参考&#xff08;包含动态库和静态库生成&#xff09; 库的使用 法一&#xff1a;放入系统路径 弊端 法二…

Java 面试题:Java 中的 int 和 Integer 有什么区别?

在Java编程语言中&#xff0c;int和Integer都是用于表示整数的数据类型&#xff0c;但它们在使用和功能上有着明显的区别。int是一种基本数据类型&#xff08;primitive type&#xff09;&#xff0c;而Integer则是一个对象类型&#xff08;wrapper class&#xff09;。理解这两…

算法与数据结构:列表、栈、队列、树、图的深入解析

在软件开发和计算机科学领域&#xff0c;算法和数据结构是两大基石。它们不仅影响着程序的性能&#xff0c;还决定了解决问题的效率。以下&#xff0c;我们将从技术难点、面试官关注点、回答吸引力以及代码举例四个方面&#xff0c;详细解释常见的算法和数据结构&#xff1a;列…

半导体芯片结构以及译码驱动

一.半导体芯片结构 可能并不是只有一个芯片&#xff0c;有多个芯片就需要片选线了。 二.半导体存储芯片的译码驱动 主要有两种方式&#xff1a;线选法和重合法 线选法&#xff1a;每一个存储单元都用一根字选择线选中&#xff0c;直接选中存储单元的各位。&#xff08;一维…

《人生海海》读后感

麦家是写谍战的高手&#xff0c;《暗算》《风声》等等作品被搬上荧屏后&#xff0c;掀起了一阵一阵的收视狂潮。麦家声名远扬我自然是知道的&#xff0c;然而我对谍战似乎总是提不起兴趣&#xff0c;因此从来没有拜读过他的作品。这几天无聊时在网上找找看看&#xff0c;发现了…

C++11完美转发(引用折叠、万能引用)

完美转发是指在函数模板中&#xff0c;完全依照模板的参数的类型&#xff0c;将参数传递给函数模板中调用的另外一个函数。 函数模板在向其他函数传递自身形参时&#xff0c;如果相应实参是左值&#xff0c;它就应该被转发为左值&#xff1b;如果相 应实参是右值&#xff0c;它…

大数据入门实践一:mac安装Hadoop,Hbase,FLume

一、安装Hadoop 安装hadoop参考此文&#xff0c;关键点是安装JDK和Hadoop的配置&#xff0c;为避免引用文章变收费&#xff0c;我把关键信息摘录如下&#xff1a; jdk安装和配置就不说了(我本机安装了1.8/15/17/21&#xff0c;以17为主&#xff09;&#xff0c;hadoop安装过程…

简单剖析tRPC-Go中使用的第三方协程池ants

tRPC-Go中的tRPC.Go()方法使用了ants协程池&#xff0c;做个简单剖析 panjf2000/ants协程池 在tRPC.Go方法&#xff08;异步启动goroutine&#xff09;中看到里面使用了ants协程池去实现&#xff08;具体位置&#xff1a;g.pool.Invoke(p)&#xff09; 前置知识: 我们想异步完…

技巧解析,如何向Kimi提问才能写出更好的论文?

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 今天为大家整理、分享的Kimi提问技巧&#xff0c;将对论文写作的各个阶段提供帮助&#xff0c;可以以此来辅助学术论文撰写。 在此之前&#xff0c;先为大家科普一个概念——信息熵&am…

Python学习笔记11:入门终结篇

前言 入门知识到这里基本结束了&#xff0c;这里主要讲一下input和range。这两个讲完&#xff0c;讲讲后面进阶学些啥。 range函数 之前将循环的时候讲过一点&#xff0c;这个函数是Python内置的函数&#xff0c;主要用来生成一系列数字&#xff0c;简单方便。 这里重新&…

跨服务器迁移 Redis 数据

跨服务器迁移 Redis 数据可以通过以下几种方法实现&#xff1a; 使用 redis-cli 工具进行数据导出和导入&#xff1a; 先从源 Redis 服务器导出数据。然后将数据导入到目标 Redis 服务器。 使用 rdb 文件&#xff1a; 将源 Redis 服务器的 dump.rdb 文件拷贝到目标服务器&…

非连续分配管理方式(重点)

目录 一. 基本分页存储管理1.1 什么是分页存储1.2 页表 二. 基本地址变换机构三. 具有快表的地址变换机构3.1 什么是快表3.2 引入快表后, 地址的变换过程3.3 局部性原理 四. 两级页表4.1 单级页表存在什么问题?如何解决?4.2 两级页表的原理、逻辑地址结构4.3 如何实现地址变换…

Windows11安装并使用Gstreamer-1.0

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、下载二、使用步骤1.安装2.命令行测试 总结 前言 Gstreamer这个工具的重要性就不用多说了吧&#xff0c;在一些视频播放和解码领域大放异彩。以前更多的是在…

Python | 中心极限定理介绍及实现

统计学是数据科学项目的重要组成部分。每当我们想从数据集的样本中对数据集的总体进行任何推断&#xff0c;从数据集中收集信息&#xff0c;或者对数据集的参数进行任何假设时&#xff0c;我们都会使用统计工具。 中心极限定理 定义&#xff1a;中心极限定理&#xff0c;通俗…