Python列表:灵活多变的数据结构

news/发布时间2024/5/14 10:35:22

文章目录

  • 一、列表
    • 1.创建列表
    • 2.访问列表元素
    • 3.修改列表元素
    • 4.添加元素
    • 5.删除元素
  • 二、列表脚本操作符
    • 1.连接运算符 +
    • 2.重复运算符 *
  • 三、列表函数&方法
    • 1.函数
      • 1.1 len() 函数
      • 1.2 max() 函数
      • 1.3 min() 函数
      • 1.4 sum() 函数
      • 1.5 list() 函数
    • 2.方法
      • 2.1 append() 方法
      • 2.2 extend() 方法
      • 2.3 count() 方法
      • 2.4 index() 方法
      • 2.5 insert()方法
      • 2.6 pop() 方法
      • 2.7 remove() 方法
      • 2.8 reverse() 方法
      • 2.9 sort() 方法
  • 四、总结


一、列表

在Python 3中,列表是一种有序的集合,它包含了多个元素并且每个元素可以是任意类型的数据。列表使用方括号 [ ] 来表示,其中的元素由逗号 , 分隔开。

1.创建列表

首先,我们可以创建一个空的列表:

# 创建一个空列表
my_list = []

然后,我们创建一个包含多个元素的列表

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']

2.访问列表元素

序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。我们可以使用 [] 运算符来访问列表中的元素。在 [] 中指定索引值,例如:

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 访问列表元素
print(my_list[0])  # 输出:1
print(my_list[1])  # 输出:2

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 访问列表元素
print(my_list[-1])  # 输出:banana
print(my_list[-2])  # 输出:apple

如果索引值超出了列表的范围,将引发一个 IndexError 异常。

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 访问列表元素
print(my_list[-8])  

输出结果:

在这里插入图片描述
我们还可以采用列表切片来检索一个范围的元素,使用 : 运算符来定位要检索的开始索引(包含)和结束索引(不包含)。

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 访问列表元素
print(my_list[1:3])  # 输出:[2, 3]

这里需要注意:切片操作包括从开始索引所指示的元素开始,一直到结束索引所指示的元素,但不包括最终索引所指示的元素。如果没有指定开始索引,将使用列表的第一个元素作为默认开始索引;如果没有指定结束索引,则将使用列表中的最后一个元素作为默认结束索引。

我们还可以使用负数索引来访问列表中的元素。

my_list = [1, 2, 3, 'apple', 'banana']# 访问列表元素
print(my_list[:-2])  # 输出:[1, 2, 3]

3.修改列表元素

列表中的元素是可变的,可以通过赋值运算符 = 来更改。

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 修改列表元素
my_list[0] = '4'
print(my_list)  # 输出:[4, 2, 3, 'orange', 'banana']

我们也可以使用切片操作将多个元素同时更改:

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 修改列表元素
my_list[0:2] = [4,5]
print(my_list)  # 输出:[4, 5, 3, 'orange', 'banana']

4.添加元素

在列表的末尾添加一个元素,可以使用 append() 方法:

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 添加元素
my_list.append(4)
print(my_list) # 输出:[1, 2, 3, 'apple', 'banana', 4]

如果你想在列表的任意位置添加元素,可以使用 insert() 方法。

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 添加元素
my_list.insert(1, 4)
print(my_list) # 输出:[1, 4, 2, 3, 'apple', 'banana']

insert() 方法用于将指定元素插入到列表的指定位置,语法如下:

list.insert(index, element)
# index 表示要插入的位置索引。
# element 表示要插入的元素。

5.删除元素

如果是删除指定位置的元素,可以采用del关键字或者pop()方法

del关键字

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 删除元素
del my_list[1]
print(my_list) # 输出:[1, 3, 'apple', 'banana']

pop()方法

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 删除元素
my_list.pop(1)
print(my_list) # 输出:[1, 3, 'apple', 'banana']

如果是删除列表中的指定元素,还可以使用remove() 方法

# 创建一个列表
my_list = [1, 2, 3, 'apple', 'banana']# 删除元素
my_list.remove(1)
print(my_list) # 输出:[2, 3, 'apple', 'banana']

二、列表脚本操作符

1.连接运算符 +

连接运算符 + 用于将两个列表连接成一个新的列表。

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

2.重复运算符 *

重复运算符 * 用于将列表的元素重复多次。

list1 = [1, 2, 3]
result = list1 * 2
print(result)  # 输出:[1, 2, 3, 1, 2, 3]

三、列表函数&方法

1.函数

1.1 len() 函数

len()函数的作用是返回列表中元素的个数。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 len() 函数获取列表中元素的个数
length = len(my_list)
print(length)  # 输出:5

1.2 max() 函数

max() 函数的作用是返回列表中元素的最大值。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 max() 函数获取列表中的最大值
max_value = max(my_list)
print(max_value)  # 输出:50

1.3 min() 函数

min() 函数的作用是返回列表中元素的最小值。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 min() 函数获取列表中的最小值
min_value = min(my_list)
print(min_value)  # 输出:10

1.4 sum() 函数

sum函数的作用是返回列表中所有元素的总和。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 sum() 函数计算列表中所有元素的总和
total = sum(my_list)
print(total)  # 输出:150

1.5 list() 函数

list() 函数的作用是可以用来将一个可迭代对象(如元组、字符串、集合等)转换为列表。

# 将元组转换为列表
tuple_data = (1, 2, 3, 4, 5)
list_from_tuple = list(tuple_data)
print(list_from_tuple)  # 输出:[1, 2, 3, 4, 5]# 将字符串转换为列表
string_data = "hello"
list_from_string = list(string_data)
print(list_from_string)  # 输出:['h', 'e', 'l', 'l', 'o']# 将集合转换为列表
set_data = {1, 2, 3, 4, 5}
list_from_set = list(set_data)
print(list_from_set)  # 输出:[1, 2, 3, 4, 5]

2.方法

2.1 append() 方法

append() 方法的作用是在列表末尾添加一个元素。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 append() 方法在列表末尾添加元素
my_list.append(100)
my_list.append('six')
my_list.append([7, 8, 9])
print(my_list)  # 输出:[10, 20, 30, 40, 50, 100, 'six', [7, 8, 9]]

2.2 extend() 方法

extend() 方法的作用是将可迭代对象中的元素添加到列表末尾。

# 创建一个列表
my_list = [10, 20, 30, 40, 50]# 使用 extend() 方法将可迭代对象中的元素添加到列表末尾
my_list.extend([7, 8, 9])
print(my_list)  # 输出:[10, 20, 30, 40, 50, 7, 8, 9]

2.3 count() 方法

count() 方法的作用是统计列表中某个元素出现的次数。

# 示例 1 – 确定项在列表中出现的次数。
my_list = [1, 2, 2, 2, 3, 4, 5, 5, 6]
count = my_list.count(2)
print("数量: ", count) # 输出 数量:  3# 示例 2 – 使用计数结果在列表中移除元素。
my_list = [1, 2, 2, 2, 3, 4, 5, 5, 6]
count = my_list.count(2)
for i in range(count):my_list.remove(2)
print(my_list) # 输出 [1, 3, 4, 5, 5, 6]# 示例 3 – 查找列表中唯一元素的数量。
my_list = [1, 2, 3, 4, 5, 6]
unique_count = len(set(my_list))
print("唯一元素数量: ", unique_count) # 输出 唯一元素数量:  6

2.4 index() 方法

index() 方法的作用是返回列表中某个元素的第一个匹配项的索引。

# 例1:查找列表中特定元素的索引
fruits = ['apple', 'banana', 'cherry']
print(fruits.index('banana')) # 输出1# 例2:查找列表中特定元素的索引,指定起始位置
fruits = ['apple', 'banana', 'cherry']
print(fruits.index('banana', 1)) # 输出1# 例3:查找列表中特定元素的索引,指定起始位置和结束位置
fruits = ['apple', 'banana', 'cherry']
print(fruits.index('banana', 1, 3)) # 输出1# 例4:查找不存在的元素
fruits = ['apple', 'banana', 'cherry']
print(fruits.index('orange')) # 会引发ValueError异常

以下是一些关于index()方法的注意事项:

  1. 如果要查找的元素在列表中多次出现,则index()方法只会返回第一个匹配元素的索引。
  2. 如果要查找的元素不存在于列表中,则index方法将引发ValueError异常。
  3. 如果指定了start参数,将从指定的索引处开始查找元素。如果元素不存在,则引发ValueError异常。
  4. 如果指定了end参数,则index()方法将在指定的索引处之前停止查找元素。如果元素不存在,则引发ValueError异常。
  5. 如果省略start和end参数,则index()方法将在列表的起始位置查找元素。

2.5 insert()方法

insert()方法的作用是在指定位置插入一个元素。

# 示例 1 – 插入一个元素
fruits = ["apple", "banana", "cherry"]
fruits.insert(1, "orange")
print(fruits) # 输出['apple', 'orange', 'banana', 'cherry']# 示例 2 – 插入多个元素
fruits = ["apple", "banana", "cherry"]
fruits.insert(1, ["orange", "watermelon"])
print(fruits) # 输出['apple', ['orange', 'watermelon'], 'banana', 'cherry']
# 需要注意的是,这种方式插入的元素是一个列表。如果想要在列表中插入多个独立的元素,需要将它们逐一插入。# 插入多个独立的元素
fruits = ["apple", "banana", "cherry"]
fruits.insert(1, "orange")
fruits.insert(2, "watermelon")
print(fruits) # 输出 ['apple', 'orange', 'watermelon', 'banana', 'cherry']# 示例 3 – 在列表的长度范围外插入元素,引发IndexError异常
fruits = ["apple", "banana", "cherry"]
fruits.insert(5, "orange")

2.6 pop() 方法

pop() 方法的作用是移除列表中指定位置的元素,并返回该元素的值。如果未指定位置,则默认移除并返回最后一个元素。

# 示例 1 – 默认移除最后一个元素
fruits = ['apple', 'banana', 'cherry']
fruits.pop()
print(fruits) # 输出 ['apple', 'banana']# 示例 2 – 移除指定位置的元素
fruits = ['apple', 'banana', 'cherry']
fruits.pop(1)
print(fruits) # 输出 ['apple', 'cherry']# 示例 3 – 异常案例
fruits = ['apple', 'banana', 'cherry']
fruits.pop(3) # 输出 IndexError: pop index out of range

2.7 remove() 方法

remove() 方法的作用是移除列表中某个值的第一个匹配项。

# 示例 1 – 删除元素
fruits = ['apple', 'banana', 'orange']
fruits.remove('orange')
print(fruits) # 输出 ['apple', 'banana']# 示例 2 – 删除第一个匹配项
fruits = ['apple', 'banana', 'orange', 'apple']
fruits.remove('apple')
print(fruits) # 输出 ['banana', 'orange', 'apple']# 示例 3 – 删除不存在的元素
fruits = ['banana', 'orange']
fruits.remove('apple')
print(fruits) # 输出 ValueError: list.remove(x): x not in list

2.8 reverse() 方法

reverse() 方法的作用是将列表中的元素反向排列。

# 创建一个列表
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]# 使用 reverse() 方法将列表中的元素反向排列
numbers.reverse()
print(numbers)  # 输出:[5, 3, 5, 6, 2, 9, 5, 1, 4, 1, 3]

2.9 sort() 方法

sort() 方法的作用是对列表进行排序。sort(key=None, reverse=False):可选参数 key 指定排序的方式,reverse=True 则表示降序排序。默认为升序。

# 创建一个列表
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]# 使用 sort() 方法对列表进行排序
# 默认升序
numbers.sort()
print(numbers)  # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]# 降序
numbers.sort(reverse=True)
print(numbers)  # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

注意事项:

  1. sort()方法直接修改原始列表,而不是返回一个新的列表。
  2. 不能对含有数字和字符串的列表进行排序,如[“apple”, 1, “banana”, 2]。
  3. 如果需要倒序排序,请使用reverse()方法,如list.reverse()。

四、总结

今天主要讲了Python的列表的相关内容。

感谢你的观看!

在这里插入图片描述

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

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

相关文章

相机图像质量研究(25)常见问题总结:CMOS期间对成像的影响--过曝、欠曝

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

ElasticSearch语法

Elasticsearch 概念 入门学习: Index索引>MySQL 里的表(table)建表、增删改查(查询需要花费的学习时间最多)用客户端去调用 ElasticSearch(3 种)语法:SQL、代码的方法(4 种语法) ES 相比于 MySQL,能够自动帮我们做分词,能够非常高效、灵活地查询内…

腾讯云OSS文件上传功能

腾讯云COS介绍 腾讯云COS(Cloud Object Storage)是一种基于对象的存储服务,用于存储和管理海量的非结构化数据,如图片、音视频文件、备份数据等。它具有以下特点和优势: 高可靠性:采用分布式存储架构&…

图——最小生成树实现(Kruskal算法,prime算法)

目录 预备知识: 最小生成树概念: Kruskal算法: 代码实现如下: 测试: Prime算法 : 代码实现如下: 测试: 结语: 预备知识: 连通图:在无向图…

精工电联:定制精工线缆,赋能科技互联---致力于为客户提供卓越的连接线缆和连接器产品

精工电联 “定制精工线缆 ,赋能科技互联”,精工电联致力于为高科技产业提供全方位、多维度的集成线缆解决方案。凭借深厚的研发实力和丰富的行业经验,精工电联已经成功地在工控设备、医疗设备、人工智能、新能源领域、轨道交通和超声波设备等…

【力扣 - 二叉树的中序遍历】

题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 提示&#xff1a; 树中节点数目在范围 [0, 100] 内 -100 < Node.val < 100方法一&#xff1a;递归 思路与算法 首先我们需要了解什么是二叉树的中序遍历&#xff1a;按照访问左子树——…

Java实现班级考勤管理系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统基础支持模块2.2 班级学生教师支持模块2.3 考勤签到管理2.4 学生请假管理 三、系统设计3.1 功能设计3.1.1 系统基础支持模块3.1.2 班级学生教师档案模块3.1.3 考勤签到管理模块3.1.4 学生请假管理模块 3.2 数据库设…

KubeKey一键部署:轻松安装Kubernetes与KubeSphere

本文主要参考“在 Linux 上以 All-in-One 模式安装 KubeSphere”进行实践测试部署。 通过KubeKey工具实现Kubernetes&#xff08;k8s&#xff09;和KubeSphere的一键式安装&#xff0c;极大地简化了安装过程。用户无需手动预先安装Docker和Kubernetes&#xff0c;只需按照以下…

车载氢气浓度传感器为氢能源车保驾护航

最近&#xff0c;车载氢气浓度传感器成为了一个热门话题。作为一名对科技充满热情的汽车爱好者&#xff0c;我自然也对这个话题产生了浓厚的兴趣。那么&#xff0c;车载氢气浓度传感器到底是什么&#xff1f;它又是如何工作的呢&#xff1f;下面就让我为你一一揭秘。 首先&…

线性代数:向量组及其线性相关性

目录 向量组 向量组的线性表示 向量组等价 相关定理 向量组的线性相关性 定理 向量组 向量组的线性表示 向量组等价 相关定理 向量组的线性相关性 定理

【Java前端技术栈】ES6-ECMAScript6.0

一、ES6基本介绍 1. ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准&#xff0c; 2015 年 6 月发布。 2. ES6 设计目标&#xff1a;达到 JavaScript 语言可以用来编写复杂的大型程序&#xff0c;成为企业级开发语 言 3. ECMAScript 和 JavaScript 的关系&…

洛谷C++简单题小练习day14—闰年推算小程序

day14--闰年推算小程序--2.18 习题概述 题目描述 输入 x,y&#xff0c;输出 [x,y] 区间中闰年个数&#xff0c;并在下一行输出所有闰年年份数字&#xff0c;使用空格隔开。 输入格式 输入两个正整数 x,y&#xff0c;以空格隔开。 输出格式 第一行输出一个正整数&#xf…

使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01

从源码编译 rocSolver 本人只操作过单个rocm版本的情景&#xff0c;20240218 ubuntu 22.04.01 1&#xff0c;卸载原先的rocm https://docs.amd.com/en/docs-5.1.3/deploy/linux/os-native/uninstall.html # Uninstall single-version ROCm packages sudo apt autoremove ro…

【AIGC】大语言模型

大型语言模型&#xff0c;也叫大语言模型、大模型&#xff08;Large Language Model&#xff0c;LLM&#xff1b;Large Language Models&#xff0c;LLMs&#xff09; 什么是大型语言模型 大型语言模型&#xff08;LLM&#xff09;是指具有数千亿&#xff08;甚至更多&#xf…

设计模式: 建造者模式

文章目录 一、什么是建造者模式二、建造者模式的结构三、使用场景案例分析1、使用场景2、案例分析 一、什么是建造者模式 建造模式通过一步一步的去构建一个复杂的对象。该模式将对象的构建细节封装在一个独立的建造者类中&#xff0c;使得客户端代码可以根据需要定制对象的构…

计算机组成原理(4)-----Cache的原理及相关知识点

目录 1.Cache的原理 2.Cache的性能 3.Cache和主存的映射方式 &#xff08;1&#xff09;全相联映射 &#xff08;2&#xff09;直接映射 &#xff08;3&#xff09;组相联映射 4.替换算法 (1)随机算法(RAND) (2)先进先出算法(FIFO) (3)近期最少使用(LRU) (4)最近不经…

迷你世界之建筑生成球体

local x0,y0,z00,30,0--起点坐标 local dx,dy,dz60,60,60--外切长方体横纵竖长度 local count,all0,dx*dy*dz--计数&#xff0c;总数 local m,k10000,0--单次生成方块数&#xff0c;无用循环值 local x,y,z0,0,0--当前坐标 local demath.random(2,19)/2 local id600--方块…

B/S架构,java源码,医院绩效管理系统,覆盖了医院绩效管理工作“PDCA”循环的全过程,支持二次开发

医院绩效管理系统源码 医院绩效管理系统以国家医院绩效管理考核政策法规为依据&#xff0c;结合医院管理实践&#xff0c;以经济管理指标为核心&#xff0c;医疗质量、安全、效率、效益管理为重点&#xff0c;特别强调持续改进&#xff08;PDCA&#xff09;管理理念。实现医院绩…

【.NET Core】深入理解async 和 await 理解

【.NET Core】深入理解async 和 await 理解 文章目录 【.NET Core】深入理解async 和 await 理解一、概述二、async异步执行机制理解三、async与await应用3.1 async与await简单应用3.2 带有返回值async与await应用 四、async和await中常见问题总结4.1 当方法用async标识时&…

Postman接口测试之断言

一、断言 在 postman 中我们是在Tests标签中编写断言&#xff0c;同时右侧封装了常用的断言&#xff0c;当然 Tests 除了可以作为断言&#xff0c;还可以当做后置处理器来编写一些后置处理代码&#xff0c;经常应用于&#xff1a; 【1】获取当前接口的响应&#xff0c;传递给…
推荐文章