当前位置: 首页 > news >正文

Python学习:列表

Python 列表概念

在Python中,列表(List)是一种有序、可变、允许重复元素的数据结构。列表使用方括号 ​[]​来表示,可以包含任意类型的元素,如整数、字符串、列表等。
在这里插入图片描述

Python 访问列表中的值

在Python中,要访问列表中的值,你可以使用索引和切片。以下是一些例子:

  1. 使用索引访问单个值
    你可以使用列表的索引来访问单个元素。索引从0开始,负数索引表示从列表末尾开始逆向索引。
my_list = ['apple', 'banana', 'cherry', 'date']print(my_list[0])   # 输出:'apple'
print(my_list[2])   # 输出:'cherry'
print(my_list[-1])  # 输出:'date'
  1. 使用切片访问多个值
    你可以使用切片操作访问列表中的多个元素,语法为list[start:stop:step],如果不指定startstop,将从开头或结尾开始切片。
print(my_list[1:3])  # 输出:['banana', 'cherry']
print(my_list[:2])   # 输出:['apple', 'banana']
print(my_list[2:])   # 输出:['cherry', 'date']
print(my_list[::2])  # 输出:['apple', 'cherry']
  1. 遍历列表中的值
    可以使用for循环遍历列表中的所有值。
for item in my_list:print(item)

Python 更新列表

在这里插入图片描述

在Python中,你可以使用多种方式来更新列表,包括添加元素、修改元素、删除元素等操作。以下是对每种操作的详细解释:

  1. 添加元素

    • 使用append()方法在列表末尾添加一个元素。这个方法会将指定的元素追加到列表的末尾。

      my_list = [1, 2, 3]
      my_list.append(4)  # 在列表末尾添加元素4
      print(my_list)  # 输出:[1, 2, 3, 4]
      
    • 使用extend()方法添加一个可迭代对象的元素到列表末尾。可迭代对象可以是一个列表、元组、集合等。

      my_list = [1, 2, 3]
      my_list.extend([4, 5])  # 在列表末尾添加可迭代对象[4, 5]
      print(my_list)  # 输出:[1, 2, 3, 4, 5]
      
    • 使用加号运算符(+)合并两个列表。

      my_list1 = [1, 2, 3]
      my_list2 = [4, 5]
      new_list = my_list1 + my_list2  # 合并两个列表
      print(new_list)  # 输出:[1, 2, 3, 4, 5]
      
  2. 修改元素

    要修改列表中的元素,你可以通过索引直接赋值为新的元素。

    my_list = [1, 2, 3]
    my_list[1] = 4  # 修改索引为1的元素为4
    print(my_list)  # 输出:[1, 4, 3]
    
  3. 删除元素

    • 使用remove()方法删除列表中指定值的元素。如果有多个相同值的元素,它只会删除第一个出现的。

      my_list = [1, 2, 3]
      my_list.remove(2)  # 删除值为2的元素
      print(my_list)  # 输出:[1, 3]
      
    • 使用pop()方法删除索引指定的元素,并返回被删除的元素。如果不传递索引,默认删除最后一个元素。

      my_list = [1, 2, 3]
      popped_elem = my_list.pop(1)  # 删除索引为1的元素
      print(popped_elem)  # 输出:2
      print(my_list)  # 输出:[1, 3]
      
    • 使用del关键字删除指定索引的元素或删除整个列表。

      my_list = [1, 2, 3]
      del my_list[1]  # 删除索引为1的元素
      print(my_list)  # 输出:[1, 3]del my_list  # 删除整个列表
      # print(my_list)  # 报错:NameError: name 'my_list' is not defined
      

Python 列表脚本操作符

在Python中,列表支持多种脚本操作符,可以用于对列表进行复制、连接、重复等操作。以下是一些常用的列表脚本操作符:

  1. 加法运算符(+

    • 用于连接(合并)两个列表,生成一个新的包含两个列表元素的列表。
    list1 = [1, 2, 3]
    list2 = [4, 5, 6]
    new_list = list1 + list2
    print(new_list)  # 输出:[1, 2, 3, 4, 5, 6]
    
  2. 乘法运算符(*

    • 用于重复列表的元素,生成一个包含重复元素的新列表。
    list3 = [1, 2, 3]
    repeated_list = list3 * 3
    print(repeated_list)  # 输出:[1, 2, 3, 1, 2, 3, 1, 2, 3]
    
  3. 成员运算符(innot in

    • 用于检查某个元素是否存在于列表中。
    list4 = [1, 2, 3, 4, 5]
    print(2 in list4)       # 输出:True
    print(6 not in list4)   # 输出:True
    

Python 列表截取与拼接

在Python中,列表截取和拼接是常用的操作,可以用于获取列表的子集或合并多个列表。以下是对列表截取和拼接的详细解释:

列表截取:

你可以使用索引和切片来截取列表的子集。列表的索引从0开始,可以是负数(表示倒数第几个元素),切片通过start:end:step的方式指定范围。

my_list = [1, 2, 3, 4, 5]# 获取单个元素
print(my_list[0])  # 输出:1# 切片获取子列表
print(my_list[1:4])  # 输出:[2, 3, 4]
print(my_list[:3])   # 输出:[1, 2, 3]
print(my_list[2:])   # 输出:[3, 4, 5]
print(my_list[-3:])  # 输出:[3, 4, 5]# 使用步长获取间隔元素
print(my_list[::2])  # 输出:[1, 3, 5]# 获取列表的副本(深拷贝)
new_list = my_list[:]  # 等同于 new_list = list(my_list)

列表拼接:

你可以使用加号运算符(+)来拼接两个或多个列表。拼接后将生成一个新的列表,包含所有被拼接的元素。

list1 = [1, 2, 3]
list2 = [4, 5, 6]
concatenated_list = list1 + list2
print(concatenated_list)  # 输出:[1, 2, 3, 4, 5, 6]

需要注意的是,列表拼接会生成一个新的列表,而不会修改原始列表。

Python 嵌套列表

在Python中,嵌套列表指的是将一个列表作为另一个列表的元素,形成多层次的嵌套结构。这种嵌套结构允许你在一个列表中存储更复杂的数据结构,例如列表的列表。以下是关于嵌套列表的一些示例和解释:

创建嵌套列表:

nested_list = [[1, 2, 3], ['a', 'b', 'c'], [True, False]]

上面的nested_list就是一个包含3个子列表的嵌套列表。每个子列表可以有不同长度,包含不同类型的元素。

访问嵌套列表的元素:

你可以使用多重索引来访问嵌套列表中的元素,每个索引对应一个层级。

nested_list = [[1, 2, 3], ['a', 'b', 'c'], [True, False]]
print(nested_list[0][1])  # 输出:2
print(nested_list[1][2])  # 输出:'c'
print(nested_list[2][0])  # 输出:True

遍历嵌套列表:

你可以使用嵌套循环来遍历嵌套列表中的元素。

nested_list = [[1, 2, 3], ['a', 'b', 'c'], [True, False]]
for inner_list in nested_list:for element in inner_list:print(element)

操作嵌套列表:

你可以向嵌套列表中添加新的子列表,或者修改已有的子列表的元素。

nested_list = [[1, 2, 3], ['a', 'b', 'c']]
nested_list.append([True, False])  # 添加新的子列表
nested_list[0][1] = 5  # 修改某个子列表中的元素

Python 列表比较

在Python中,你可以使用比较运算符对列表进行比较。下面是一些常用的列表比较方式:

  1. 相等性比较(==!=

    • 用于检查两个列表是否相等或不相等。
    list1 = [1, 2, 3]
    list2 = [1, 2, 3]
    print(list1 == list2)  # 输出:True
    print(list1 != list2)  # 输出:False
    
  2. 大小比较(<, <=, >, >=

    • 可以按照字典顺序逐个元素比较两个列表的元素。从第一个开始比较,如果找到一个位置两个列表的元素不相等,则根据不等元素的比较结果确定整体列表的比较结果。
    list3 = [1, 2]
    list4 = [1, 3]
    print(list3 < list4)  # 输出:True,因为 2 < 3
    
  3. 成员身份测试(innot in

    • 可以测试一个列表是否包含某个特定元素。
    list5 = [1, 2, 3]
    print(2 in list5)      # 输出:True
    print(4 not in list5)  # 输出:True
    

注意,在Python中,列表比较是逐个元素进行比较的,如果两个列表的所有元素一一对应相等,则认为这两个列表相等,否则根据比较结果确定大小关系。

Python列表函数&方法

在Python中,列表(List)是一个非常常用且功能丰富的数据类型,具有许多内置的函数和方法可以对列表进行操作。以下是一些常用的列表函数和方法:

列表函数:

  1. len(): 返回列表中元素的个数。

    my_list = [1, 2, 3, 4, 5]
    print(len(my_list))  # 输出:5
    
  2. max(): 返回列表中的最大值。

    my_list = [10, 5, 8, 20]
    print(max(my_list))  # 输出:20
    
  3. min(): 返回列表中的最小值。

    my_list = [10, 5, 8, 20]
    print(min(my_list))  # 输出:5
    
  4. sum(): 返回列表所有元素的和(仅当列表内元素为数值型)。

    my_list = [1, 2, 3, 4, 5]
    print(sum(my_list))  # 输出:15
    

列表方法:

  1. append(): 在列表末尾添加一个新元素。

    my_list = [1, 2, 3]
    my_list.append(4)
    print(my_list)  # 输出:[1, 2, 3, 4]
    
  2. extend(): 将另一个列表中的元素逐个添加到当前列表的末尾。

    list1 = [1, 2]
    list2 = [3, 4]
    list1.extend(list2)
    print(list1)  # 输出:[1, 2, 3, 4]
    
  3. insert(): 在指定位置插入一个元素。

    my_list = [1, 2, 3]
    my_list.insert(1, 5)
    print(my_list)  # 输出:[1, 5, 2, 3]
    
  4. pop(): 移除并返回指定位置的元素(默认为最后一个元素)。

    my_list = [1, 2, 3]
    element = my_list.pop()
    print(element)  # 输出:3
    print(my_list)  # 输出:[1, 2]
    

还有很多其他列表函数和方法可供使用。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步
在这里插入图片描述

相关文章:

Python学习:列表

Python 列表概念 在Python中&#xff0c;列表&#xff08;List&#xff09;是一种有序、可变、允许重复元素的数据结构。列表使用方括号 ​[]​来表示&#xff0c;可以包含任意类型的元素&#xff0c;如整数、字符串、列表等。 Python 访问列表中的值 在Python中&#xff0…...

C语言每日一题—判断是否为魔方矩阵

魔方矩阵 在魔方阵中&#xff0c;所有的行、列和对角线都拥有相同的和。例如&#xff1a;17 24 1 8 15 23 5 7 14 16 4 9 24 6 13 20 22 和 3 5 710 12 19 21 3 8 1 611 18 25 2 9 写一个程序读入一个二维整型数组并…...

Java数组新手冷知识

J a v a Java Java 中&#xff0c;数组是对象&#xff0c;当你将一个数组传递给方法时&#xff0c;你其实是传递了数组的引用&#xff08;地址&#xff09;&#xff0c;而不是数组的副本。因此&#xff0c;在 m m m 方法中修改了数组 n n n 的内容后&#xff0c;这种改变在方…...

Linux——程序地址空间

我们先来看这样一段代码&#xff1a; #include <stdio.h> #include <unistd.h> #include <stdlib.h>int g_val 0;int main() {pid_t id fork();if(id < 0){perror("fork");return 0;}else if(id 0){ //child,子进程肯定先跑完&#xff0c;也…...

Linux编程4.9 网络编程-建立连接

1、TCP的连接与断开 三次握手与四次挥手 2、服务器端并发性处理 2.1 多进程模型 一个父进程&#xff0c;多个子进程父进程负责等待并接受客户端连接子进程: 完成通信&#xff0c;接受一个客户端连接&#xff0c;就创建一个子进程用于通信。 2.2 多线程模型 多线程服务器是…...

威胁检测与分析--云图大师

威胁检测与分析--云图大师 当 Internet 在 1960 年代创建时&#xff0c;被设想为一个革命性的计算机网络&#xff0c;供几千名研究人员使用。创建这个快速可靠的网络使用了许多资源&#xff0c;其开发人员考虑的安全措施主要是为了防止军事威胁和潜在的强大入侵者。 在那个时代…...

Python基础入门 --- 7.函数

Python基础入门 第七章&#xff1a; 7.函数 7.1 函数多返回值 按照返回值顺序&#xff0c;写对应顺序的多个变量接收&#xff0c;变量之间用逗号分隔&#xff0c;支持不同数据类型return def test_return():return 1,"hello", Truex, y, z test_return() print…...

第4周 Python程序流程控制刷题

单击题目&#xff0c;直接跳转到页面刷题&#xff0c;一周后公布答案。 B2050&#xff1a;三角形判断B2037&#xff1a;奇偶数判断B2039&#xff1a;整数大小比较P5711&#xff1a;闰年判断P5714&#xff1a;肥胖问题B2043&#xff1a;判断能否被 3&#xff0c;5&#xff0c;7…...

高亮搜索中的关键字怎么实现

在前端实现搜索关键字高亮&#xff0c;通常涉及到对页面上的文本内容进行操作&#xff0c;并使用CSS来改变这些内容的样式。以下是一个基本的步骤和示例&#xff0c;说明如何实现这一功能&#xff1a; HTML结构&#xff1a;首先&#xff0c;你需要在HTML中设置一个搜索框和一个…...

OpenCV系列文章目录(持续更新中......)

引言&#xff1a; OpenCV是一个开源的计算机视觉库&#xff0c;由英特尔公司开发并开源的一组跨平台的C函数和少量的C函数组成&#xff0c;用于实时图像处理、计算机视觉和机器学习等应用领域。OpenCV可以在包括Windows、Linux、macOS等各种操作系统平台上使用&#xff0c;具…...

【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料 1.Git 地址 地址 2.issues issues 3.参考 参考 csdn 二.服务器信息 1.GPU 服务器 GPU 服务器自带 CUDA 安装(前提是需要勾选上)CUDA 需要选择大于 11.3 的版本登录服务器后会自动安装 GPU 驱动 2.CUDA 安装 GPU 服务器自带 CUDA CUDA 版本查看 3.登录信…...

西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)

前言 在学习到这部分时&#xff0c;对 ℓ-rank 以及AUC的关系难以理解透彻&#xff0c;在网上看到其他博主也并未弄明白&#xff0c;大家大多写自己的理解&#xff0c;我希望您在看完这篇文章时能够深刻理解这二者的关系&#xff0c;如果我的理解有误&#xff0c;希望您在评论…...

渔业安全生产综合管理指挥系统-航迹数据优化方案

文章目录 引言I 轨迹数据模型II 轨迹信息索引III 数据同步方案3.1 多服务器多表同步3.2 增量数据同步3.3 执行IV 配置ESV 团队建设5.1 前端(web GIS)5.2 后端(Java)see also引言 背景: 目前系统查询轨迹数据比较慢的原因是没有进行读写分离,轨迹数据的查询和写入都是SQL…...

发现数据之美:探索数据可视化的艺术与技术

摘要: 数据可视化是将抽象的数据转化为图形化表达的过程,它不仅可以让数据更加直观易懂,还能够揭示数据背后的模式、趋势和关联关系。本文将深入探讨数据可视化的重要性,并通过详细的实例演示如何运用常见的数据可视化工具和库,如Matplotlib、Seaborn和Plotly,为读者呈现…...

Flutter项目组件模块化开发的实践与搭建

在Flutter应用程序的开发中&#xff0c;组件模块化是一种非常重要的开发方式&#xff0c;它可以提高代码的可维护性、复用性和扩展性。本文将介绍如何在Flutter项目中搭建组件模块化开发的框架&#xff0c;并给出实际的实践示例。 1. 为什么需要组件模块化开发&#xff1f; 在…...

Flink:使用 Faker 和 DataGen 生成测试数据

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…...

Json格式解析

文章目录 Json格式介绍python中json模块的使用 Json格式介绍 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;它基于 ECMAScript&#xff08;欧洲计算机协会制定的js规范&#xff09;的一个子集&#xff0c;采用完全独立于语言…...

Java Day13 多线程

多线程 1、 方式一 Thread2、实现Runnable接口3、实现 Callable接口4、与线程有关的操作方法5、线程安全问题5.1 取钱案例5.2 线程同步5.2.1 同步代码块5.2.2 同步方法5.2.3 Lock锁 6、线程池6.2 创建线程池6.2.1 使用ExecutorService创建新任务策略6.2.2 使用Executors工具类创…...

以太坊的演变:EIP、ERC 概念以及革命性的 ERC20、ERC721 和 ERC115 标准

文章目录 一、EIP——以太坊发展的基石1.1 什么是EIP&#xff1f;1.2 历史背景&#xff1a;前身的 BIP1.3 EIP的重要性1.4 流程&#xff1a;从提案到实施 二、进入 ERC——以太坊内的标准化协议2.1 解读 ERC&#xff1a;以太坊征求意见2.2 ERC 标准的诞生和意义 三、聚焦 ERC20…...

B003-springcloud alibaba 服务治理 nacos discovery ribbon feign

目录 服务治理服务治理介绍什么是服务治理相关方案 nacos实战入门搭建nacos环境安装nacos启动nacos访问nacos 将商品微服务注册进nacos将订单微服务注册进nacos订单服务通过nacos调用商品服务 实现服务调用的负载均衡什么是负载均衡代码实现负载均衡增加一个服务提供者自定义实…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

vue3 手动封装城市三级联动

要做的功能 示意图是这样的&#xff0c;因为后端给的数据结构 不足以使用ant-design组件 的联动查询组件 所以只能自己分装 组件 当然 这个数据后端给的不一样的情况下 可能组件内对应的 逻辑方式就不一样 毕竟是 三个 数组 省份 城市 区域 我直接粘贴组件代码了 <temp…...

React与原生事件:核心差异与性能对比解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

JavaScript性能优化实战大纲

性能优化的核心目标 降低页面加载时间&#xff0c;减少内存占用&#xff0c;提高代码执行效率&#xff0c;确保流畅的用户体验。 代码层面的优化 减少全局变量使用&#xff0c;避免内存泄漏 // 不好的实践 var globalVar I am global;// 好的实践 (function() {var localV…...

git删除本地分支和远程分支

删除本地分支 git branch -d 分支名删除远程分支 git push origin --delete 分支名...

分类数据集 - 场景分类数据集下载

数据集介绍&#xff1a;自然场景分类数据集&#xff0c;真实场景高质量图片数据&#xff1b;适用实际项目应用&#xff1a;自然场景下场景分类项目&#xff0c;以及作为通用场景分类数据集场景数据的补充&#xff1b;数据集类别&#xff1a;buildings、forest、glacier、mounta…...

Spring Boot + Thymeleaf 防重复提交

在 Spring Boot 与 Thymeleaf 结合的 Web 应用中&#xff0c;防止重复提交可以采用token 机制 客户端禁用按钮的方式实现&#xff0c;在高并发场景下&#xff0c;考虑使用 Redis 存储 token 而非 Session。 第一步&#xff1a;后端实现 Controller public class FormControl…...