当前位置: 首页 > 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调用商品服务 实现服务调用的负载均衡什么是负载均衡代码实现负载均衡增加一个服务提供者自定义实…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...

Yii2项目自动向GitLab上报Bug

Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...