Python列表操作函数
在Python中,列表(list)是一种可变的数据类型,它包含一系列有序的元素。Python提供了一系列内置的函数和方法来操作列表。以下是一些常用的Python列表操作函数和方法:
列表方法
append(x)
将元素x添加到列表的末尾。
insert(i, x)
在列表的指定位置i插入元素x。
remove(x)
从列表中删除第一个值为x的元素(如果存在的话)。
pop([i])
移除并返回列表中的一个元素(默认为最后一个元素),如果指定索引i,则移除并返回该位置的元素。
clear()
移除列表中的所有元素(清空列表)。
index(x, [start, [stop]])
返回列表中第一个值为x的元素的索引,如果没有找到则抛出ValueError。可选参数start和stop用于指定搜索范围。
count(x)
返回列表中值为x的元素的个数。
sort(key=None, reverse=False)
对列表进行原地排序。如果指定了key参数,则排序会按照key函数指定的方式进行。如果reverse为True,则排序是降序的。
reverse()
反转列表中的元素。
copy()
返回列表的一个浅拷贝。
内置函数
len(list)
返回列表的长度(元素个数)。
list(iterable)
将可迭代对象转换为列表。
sorted(iterable, key=None, reverse=False)
返回一个新的列表,包含可迭代对象中所有元素,并使用指定的key函数进行排序。如果reverse为True,则排序是降序的。这个函数不会修改原始列表。
sum(iterable, start)
返回数值型可迭代对象的元素之和。对于列表,这通常用于数值列表。start参数是可选的,表示求和的初始值。
max(iterable, key=None) 和 min(iterable, key=None)
返回可迭代对象中的最大值或最小值。可以通过key参数指定一个函数来确定比较的依据。
all(iterable) 和 any(iterable)
对可迭代对象的元素进行逻辑判断,all()检查是否所有元素都为真(或可迭代对象为空),any()检查是否有任何元素为真。对于列表,这通常用于布尔值列表或可以对元素进行布尔解释的列表。
enumerate(iterable, start=0)
返回一个枚举对象,该对象生成由可迭代对象的索引和值组成的元组。通常用于在循环中同时获取索引和值。
map(function, iterable, …)
返回一个迭代器,该迭代器应用给定的函数到可迭代对象的每个项目,并产生结果。对于列表,这通常用于将函数应用于列表的每个元素并返回结果的新列表(虽然map本身返回的是迭代器,但可以转换为列表)。
filter(function, iterable)
返回一个迭代器,该迭代器产生那些函数返回值为真的可迭代对象的元素。对于列表,这通常用于过滤出满足特定条件的元素。
range(start, stop, step)
虽然range本身不是一个列表操作函数,但它经常与列表一起使用,用于生成一个整数序列,该序列可以在循环中迭代或在列表推导式中使用以创建列表。在Python 3中,range返回一个迭代器,但在许多情况下,它可以像列表一样使用(例如,在for循环中)。如果你确实需要一个列表,可以使用list(range(…))将其转换为列表。
下面是一些使用这些方法和函数的例子:
创建一个列表
my_list = [1, 2, 3, 4, 5]
添加元素
my_list.append(6) # [1, 2, 3, 4, 5, 6]
my_list.insert(0, 0) # [0, 1, 2, 3, 4, 5, 6]
my_list.extend([7, 8, 9]) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
删除元素
my_list.remove(3) # [0, 1, 2, 4, 5, 6, 7, 8, 9]
popped_element = my_list.pop() # popped_element = 9, my_list = [0, 1, 2, 4, 5, 6, 7, 8]
my_list.clear() # []
查找元素
index_of_2 = my_list.index(2) # 这会抛出一个ValueError,因为列表已经被清空了
为了避免错误,通常需要在调用index之前检查元素是否存在,或者使用try-except捕获异常。
排序和反转(假设列表没有被清空)
my_list = [5, 3, 1, 4, 2]
my_list.sort() # [1, 2, 3, 4, 5]
my_list.reverse() # [5, 4, 3, 2, 1]
需要注意的是,上面提到的sort()和reverse()方法会直接修改原列表(它们是原地操作),而不是返回一个新的列表。如果你需要保留原列表并创建一个排序或反转后的新列表,可以使用切片和内置的sorted()函数:
排序但不修改原列表
original_list = [5, 3, 1, 4, 2]
sorted_list = sorted(original_list) # [1, 2, 3, 4, 5]
original_list 仍然是 [5, 3, 1, 4, 2]
反转但不修改原列表
reversed_list = original_list[::-1] # [2, 4, 1, 3, 5]
original_list 仍然是 [5, 3, 1, 4, 2]
相关文章:
Python列表操作函数
在Python中,列表(list)是一种可变的数据类型,它包含一系列有序的元素。Python提供了一系列内置的函数和方法来操作列表。以下是一些常用的Python列表操作函数和方法: 列表方法 append(x) 将元素x添加到列表的末尾。 …...

Qt注册类对象单例与单类型区别
1.实现类型SingletonTypeExample #ifndef SINGLETONTYPEEXAMPLE_H #define SINGLETONTYPEEXAMPLE_H#include <QObject>class SingletonTypeExample : public QObject {Q_OBJECT public://只能显示构造类对象explicit SingletonTypeExample(QObject *parent nullptr);//…...

Rocky Linux 运维工具yum
一、yum的简介 yum是用于在基于RPM包管理系统的包管理工具。用户可以通过 yum来搜索、安装、更新和删除软件包,自动处理依赖关系,方便快捷地管理系统上的软件。 二、yum的参数说明 1、install 用于在系统的上安装一个或多个软件包 2、seach 用…...
linux下的ollama
refs: https://github.com/ollama/ollama/blob/main/docs/linux.md 1)安装 curl -fsSL https://ollama.com/install.sh | sh 2)修改服务配置,打开端口允许所有IP地址 refs(https://github.com/ollama/ollama/blob/main/docs/faq.md#where-are-models-stored) C…...

YOLOv9详细解读,改进提升全面分析(附YOLOv9结构图)
🥑 Welcome to Aedream同学 s blog! 🥑 文章目录 1. 概要1.1 模型结构上的改动:1.2 训练脚本上的改动: 2. 介绍2.1 背景2.2 主要贡献 3. 总体框架3.1 可编程梯度信息(PGI)3.1.1 辅助可逆分支3.1.2 多级辅助信息 3.2 Ge…...

html基础操练和进阶修炼宝典
文章目录 1.超链接标签2.跳锚点3.图片标签4.表格5.表格的方向属性6.子窗口7.音视频标签8.表单9.文件上传10.input属性 html修炼必经之路—各种类型标签详解加展示,关注点赞加收藏,防止迷路哦 1.超链接标签 <!DOCTYPE html> <html lang"en…...
从Mysql 数据库删除重复记录只保留其中一条(删除id最小的一条)
准备工作:新建表tb_coupon /*Navicat Premium Data TransferSource Server : rootlocalhostSource Server Type : MySQLSource Server Version : 50527Source Host : localhost:3306Source Schema : leyouTarget Server Type : My…...

从http到websocket
阅读本文之前,你最好已经做过一些websocket的简单应用 从http到websocket HTTP101HTTP 轮询、长轮询和流化其他技术1. 服务器发送事件2. SPDY3. web实时通信 互联网简史web和httpWebsocket协议1. 简介2. 初始握手3. 计算响应健值4. 消息格式5. WebSocket关闭握手 实…...

UE5 C++ Widget练习 Button 和 ProgressBar创建血条
一. 1.C创建一个继承Widget类的子类, 命名为MyUserWidget 2.加上Button 和 UserWidget的头文件 #include "CoreMinimal.h" #include "Components/Button.h" #include "Blueprint/UserWidget.h" #include "MyUserWidget.genera…...

抖店无货源违规频发,不能入驻?这个是真的吗?
我是电商珠珠 还没有踏入抖店这个电商行业的新手,单从别人的口中,听说了抖店无货源特别容易违规,还会被扣除全部的保证金,得不偿失之类的话。有的还专门劝诫新手不要做抖店,做了就会亏本之类的话,这搞得人…...

HarmonyOS—开发云数据库
您可以在云侧工程下开发云数据库资源,包括创建对象类型、在对象类型中添加数据条目、部署云数据库。 创建对象类型 对象类型(即ObjectType)用于定义存储对象的集合,不同的对象类型对应的不同数据结构。每创建一个对象类型&#…...
mysql查询某个数据库的数量有多少GB
要查询MySQL数据库中某个数据库(或称为“schema”)所占用的磁盘空间大小(以GB为单位),你可以使用information_schema数据库中的TABLES和DATA_LENGTH、INDEX_LENGTH字段来获取每个表的数据和索引的大小,然后…...

table展示子级踩坑
##elemenui中table通过row中是否有children进行判断是否展示子集,通过设置tree-prop的属性进行设置,子级的children的名字可以根据自己的子级名字进行替换,当然同样可以对数据处理成含有chilren的子级list。 问题: 1.如果是根据后…...

xss过waf的小姿势
今天看大佬的视频学到了几个操作 首先是拆分发可以用self将被过滤的函数进行拆分 如下图我用self将alert拆分成两段依然成功执行 然后学习另一种姿势 <svg id"YWxlcnQoIlhTUyIp"><img src1 οnerrοr"window[eval](atob(document.getElementsByTagNa…...

【六袆 - MySQL】MySQL 5.5及更高版本中,InnoDB是新表的默认存储引擎;
InnoDB 这是一个MySQL组件,结合了高性能和事务处理能力,以确保可靠性、健壮性和并发访问。它体现了ACID设计哲学。它作为一个存储引擎存在,处理使用ENGINEINNODB子句创建的或修改的表。请参阅第14章“InnoDB存储引擎”以获取有关架构细节和管…...

可移植性(兼容性)测试指南
可移植性是指应用程序能够安装到不同的环境中,在不同的环境中使用,甚至可以移动到不同的环境中。当然,前两者对所有系统都很重要。就PC软件而言,鉴于操作系统、共存和互操作应用程序、硬件、带宽可用性等方面的快速变化࿰…...

软件更新快讯-Obsidian更新-1.5.8 linux Appimage直装
更新内容 1.5.8: 从具有相同属性的文件导航时,固定属性不会显示。 修复了Home和End在导航文档顶部和底部时不总是起作用的问题。 Fixed properties not appearing when navigating from a file that has the same properties.Fixed Home and End not a…...

Android Gradle开发与应用 (二) : Groovy基础语法
1. Groovy是什么 Groovy是基于JVM虚拟机的一种动态语言,语法和Java非常相似,并能够无缝地与Java代码集成和互操作,增加了很多动态类型和灵活的特性。(闭包、DSL) 语法和Java非常相似这个特点,意味着,如果我们完全不懂…...
iptables学习
iptables的4表5链的处理流程 一:业务地址请求服务时,首先经过iptables服务,iptables通过校验规则,通过校验是否同意业务访问,规则从上到下,匹配规则都失败了的话,走默认规则 (1&…...
kafka 集群搭建
kafka集群搭建 1. kafka介绍 Apache Kafka是一个开源的流处理平台,由Scala和Java编写1。它是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统2。Kafka的最大特…...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

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

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...