Python:核心知识点整理大全5-笔记
目录
2. 使用方法pop()删除元素
3. 弹出列表中任何位置处的元素
4. 根据值删除元素
3 章 列表简介
3.3 组织列表
3.3.1 使用方法 sort()对列表进行永久性排序
3.3.2 使用函数 sorted()对列表进行临时排序
3.3.3 倒着打印列表
3.3.4 确定列表的长度
3.5 小结
2. 使用方法pop()删除元素
有时候,你要将元素从列表中删除,并接着使用它的值。例如,你可能需要获取刚被射杀的 外星人的x和y坐标,以便在相应的位置显示爆炸效果;在Web应用程序中,你可能要将用户从活 跃成员列表中删除,并将其加入到非活跃成员列表中。
方法pop()可删除列表末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类 比:列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶元素。 下面从列表motorcycles中弹出一款摩托车:
1 motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
2 popped_motorcycle = motorcycles.pop()
3 print(motorcycles)
4 print(popped_motorcycle)
我们首先定义并打印了列表motorcycles(见1)。接下来,我们从这个列表中弹出一个值, 并将其存储到变量popped_motorcycle中(见2)。然后我们打印这个列表,以核实从其中删除了 一个值(见3)。最后,我们打印弹出的值,以证明我们依然能够访问被删除的值(见4)。 输出表明,列表末尾的值'suzuki'已删除,它现在存储在变量popped_motorcycle中:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
方法pop()是怎么起作用的呢?假设列表中的摩托车是按购买时间存储的,就可使用方法 pop()打印一条消息,指出最后购买的是哪款摩托车:
motorcycles = ['honda', 'yamaha', 'suzuki']
last_owned = motorcycles.pop()
print("The last motorcycle I owned was a " + last_owned.title() + ".")
输出是一个简单的句子,指出了最新购买的是哪款摩托车:
The last motorcycle I owned was a Suzuki
3. 弹出列表中任何位置处的元素
实际上,你可以使用pop()来删除列表中任何位置的元素,只需在括号中指定要删除的元素 的索引即可。
motorcycles = ['honda', 'yamaha', 'suzuki']
1 first_owned = motorcycles.pop(0)
2 print('The first motorcycle I owned was a ' + first_owned.title() + '.')
首先,我们弹出了列表中的第一款摩托车(见1),然后打印了一条有关这辆摩托车的消息 (见2)。输出是一个简单的句子,描述了我购买的第一辆摩托车:
The first motorcycle I owned was a Honda.
别忘了,每当你使用pop()时,被弹出的元素就不再在列表中了。
如果你不确定该使用del语句还是pop()方法,下面是一个简单的判断标准:如果你要从列表 中删除一个元素,且不再以任何方式使用它,就使用del语句;如果你要在删除元素后还能继续 使用它,就使用方法pop()。
4. 根据值删除元素
有时候,你不知道要从列表中删除的值所处的位
置。如果你只知道要删除的元素的值,可使 用方法remove()。
例如,假设我们要从列表motorcycles中删除值'ducati'。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
1 motorcycles.remove('ducati')
print(motorcycles)
1 处的代码让Python确定'ducati'出现在列表的什么地方,并将该元素删除:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
使用remove()从列表中删除元素时,也可接着使用它的值。下面删除值'ducati',并打印一 条消息,指出要将其从列表中删除的原因:
3 章 列表简介
1 motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
2 too_expensive = 'ducati'
3 motorcycles.remove(too_expensive)
print(motorcycles)
4 print("\nA " + too_expensive.title() + " is too expensive for me.")
在1处定义列表后,我们将值'ducati'存储在变量too_expensive中(见2)。接下来,我们 使用这个变量来告诉Python将哪个值从列表中删除(见3)。最后,值'ducati'已经从列表中删除, 但它还存储在变量too_expensive中(见4),让我们能够打印一条消息,指出将'ducati'从列表 motorcycles中删除的原因:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
A Ducati is too expensive for me.
注意 方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要 使用循环来判断是否删除了所有这样的值。你将在第7章学习如何这样做。
3.3 组织列表
在你创建的列表中,元素的排列顺序常常是无法预测的,因为你并非总能控制用户提供数据 的顺序。这虽然在大多数情况下都是不可避免的,但你经常需要以特定的顺序呈现信息。有时候, 你希望保留列表元素最初的排列顺序,而有时候又需要调整排列顺序。Python提供了很多组织列 表的方式,可根据具体情况选用。
3.3.1 使用方法 sort()对列表进行永久性排序
Python方法sort()让你能够较为轻松地对列表进行排序。假设你有一个汽车列表,并要让其 中的汽车按字母顺序排列。为简化这项任务,我们假设该列表中的所有值都是小写的。
cars.py
cars = ['bmw', 'audi', 'toyota', 'subaru']
1 cars.sort()
print(cars)
方法sort()(见1)永久性地修改了列表元素的排列顺序。现在,汽车是按字母顺序排列的, 再也无法恢复到原来的排列顺序:
['audi', 'bmw', 'subaru', 'toyota']
你还可以按与字母顺序相反的顺序排列列表元素,为此,只需向sort()方法传递参数 reverse=True。下面的示例将汽车列表按与字母顺序相反的顺序排列:
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
同样,对列表元素排列顺序的修改是永久性的:
['toyota', 'subaru', 'bmw', 'audi']
3.3.2 使用函数 sorted()对列表进行临时排序
要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。函数 sorted()让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
下面尝试对汽车列表调用这个函数。
cars = ['bmw', 'audi', 'toyota', 'subaru']
1 print("Here is the original list:")
print(cars)
2 print("\nHere is the sorted list:")
print(sorted(cars))
3 print("\nHere is the original list again:")
print(cars)
我们首先按原始顺序打印列表(见1),再按字母顺序显示该列表(见2)。以特定顺序显示 列表后,我们进行核实,确认列表元素的排列顺序与以前相同(见3)
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
4 Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']
注意,调用函数sorted()后,列表元素的排列顺序并没有变(见4)。如果你要按与字母顺 序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。
注意 在并非所有的值都是小写时,按字母顺序排列列表要复杂些。决定排列顺序时,有多种 解读大写字母的方式,要指定准确的排列顺序,可能比我们这里所做的要复杂。然而, 大多数排序方式都基于本节介绍的知识。
3.3.3 倒着打印列表
要反转列表元素的排列顺序,可使用方法reverse()。假设汽车列表是按购买时间排列的, 可轻松地按相反的顺序排列其中的汽车:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
注意,reverse()不是指按与字母顺序相反的顺序排列列表元素,而只是反转列表元素的排 列顺序:
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
方法reverse()永久性地修改列表元素的排列顺序,但可随时恢复到原来的排列顺序,为此 只需对列表再次调用reverse()即可。
3.3.4 确定列表的长度
使用函数len()可快速获悉列表的长度。在下面的示例中,列表包含4个元素,因此其长度为4:
>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> len(cars)
4
在你需要完成如下任务时,len()很有用:确定还有多少个外星人未被射杀,需要管理多少 项可视化数据,网站有多少注册用户等。
注意 Python计算列表元素数时从1开始,因此确定列表长度时,你应该不会遇到差一错误。
3.4 使用列表时避免索引错误 刚开始使用列表时,经常会遇到一种错误。假设你有一个包含三个元素的列表,却要求获取 第四个元素:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])
这将导致索引错误
Traceback (most recent call last):File "motorcycles.py", line 3, in <module>print(motorcycles[3])
IndexError: list index out of range
Python试图向你提供位于索引3处的元素,但它搜索列表motorcycles时,却发现索引3处没有 元素。鉴于列表索引差一的特征,这种错误很常见。有些人从1开始数,因此以为第三个元素的 索引为3;但在Python中,第三个元素的索引为2,因为索引是从0开始的。
索引错误意味着Python无法理解你指定的索引。程序发生索引错误时,请尝试将你指定的索 引减1,然后再次运行程序,看看结果是否正确。
别忘了,每当需要访问最后一个列表元素时,都可使用索引-1。这在任何情况下都行之有效, 即便你最后一次访问列表后,其长度发生了变化:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[-1])
索引-1总是返回最后一个列表元素,这里为值'suzuki':
'suzuki'
仅当列表为空时,这种访问最后一个元素的方式才会导致错误:
motorcycles = []
print(motorcycles[-1])
列表motorcycles不包含任何元素,因此Python返回一条索引错误消息:
Traceback (most recent call last):File "motorcyles.py", line 3, in <module>print(motorcycles[-1])
IndexError: list index out of range
注意 发生索引错误却找不到解决办法时,请尝试将列表或其长度打印出来。列表可能与你以 为的截然不同,在程序对其进行了动态处理时尤其如此。通过查看列表或其包含的元素 数,可帮助你找出这种逻辑错误。
3.5 小结
在本章中,你学习了:列表是什么以及如何使用其中的元素;如何定义列表以及如何增删元 素;如何对列表进行永久性排序,以及如何为展示列表而进行临时排序;如何确定列表的长度, 以及在使用列表时如何避免索引错误。 在第4章,你将学习如何以更高效的方式处理列表元素。通过使用为数不多的几行代码来遍 历列表元素,你就能高效地处理它们,即便列表包含数千乃至数百万个元素。
Python:核心知识点整理大全3-笔记-CSDN博客
Python:核心知识点整理大全2-笔记-CSDN博客
Python:核心知识点整理大全1-笔记-CSDN博客
往期快速传送门👆(在文章最后):
相关文章:
Python:核心知识点整理大全5-笔记
目录 2. 使用方法pop()删除元素 3. 弹出列表中任何位置处的元素 4. 根据值删除元素 3 章 列表简介 3.3 组织列表 3.3.1 使用方法 sort()对列表进行永久性排序 3.3.2 使用函数 sorted()对列表进行临时排序 3.3.3 倒着打印列表 3.3.4 确定列表的长度 3.5 小结 2. 使用方…...
预训练(pre-learning)、微调(fine-tuning)、迁移学习(transfer learning)
预训练(pre-learning) 搭建一个网络模型来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整参数,直到网络的损失越来越小。在训练的过程中,一开始初始化的…...
王道数据结构课后代码题 p149 第8—— 12(c语言代码实现)
目录 8.假设二叉树采用二叉链表存储结构存储,试设计一个算法,计算一棵给定二叉树的所有双分支结点个数。 9.设树B是一棵采用链式结构存储的二叉树,编写一个把树 B中所有结点的左、右子树进行交换的函数。 10.假设二叉树采用二叉链存储结构存储…...
Nginx服务优化以及防盗链
1. 隐藏版本号 以在 CentOS 中使用命令 curl -I http://192.168.66.10 显示响应报文首部信息。 查看版本号 curl -I http://192.168.66.10 1. 修改配置文件 vim /usr/local/nginx/conf/nginx.conf http {include mime.types;default_type application/octet-stream;…...
20231210 随机矩阵和M矩阵
1. 非负矩阵:矩阵元素均非负 定义 7.1.1 设 A ( a i j ) ∈ R m n \boldsymbol{A}\left(a_{i j}\right) \in \mathbb{R}^{m \times n} A(aij)∈Rmn, 如果 a i j ⩾ 0 , i 1 , ⋯ , m ; j 1 , ⋯ , n , a_{i j} \geqslant 0, \quad i1, \cdots, m ; j1, \cd…...
Linux(centos)学习笔记(初学)
[rootlocalhost~]#:[用户名主机名 当前所在目录]#超级管理员标识 $普通用户的标识 Ctrlshift放大终端字体 Ctrl缩小终端字体 Tab可以补全命令 Ctrlshiftc/V复制粘贴 / :根目录,Linux系统起点 ls: #list列出目录的内容,通常用户查看…...
ECharts标题字体大小自适应变化
我们在做自适应Echarts的时候,字体大小在配置项里是如下配置的, title 标题组件,包含主标题和副标题。 以下是常用的对标题的设置: title:{//设置图表的标题text:"主标题",link:"baidu.com", //设置标题超链接target:"self",...
解决使用pnpm安装时Sharp模块报错的方法
在使用pnpm进行项目依赖安装的过程中,有时候会遇到Sharp模块报错的情况。Sharp是一个用于处理图像的Node.js模块,但它的安装可能会因为各种原因而失败,导致项目无法正常启动。本文将介绍这个问题的方法。 问题描述 解决方法 在命令行分别输…...
Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点
文章目录 一、RDB (Redis Database)1.1 RDB 优势1.2 RDB 缺点1.3 RDB 如何工作1.4 RDB配置1.5 开启/关闭,RDB快照策略,save指令1.6 持久化硬盘文件,dbfilename指令1.7 持久化硬盘文件的存储地址,dir指令 二、AOF (Append Only Fil…...
回味童年经典游戏的项目
目录 1.超级玛丽2.坦克大战3.吃豆人游戏4.贪吃蛇游戏 1.超级玛丽 项目地址:超级马里奥游戏源码 在线试玩网址在资源描述中 在线试玩:http://martindrapeau.github.io/backbone-game-engine/super-mario-bros/index.html 主要语言:JavaScript…...
Electron[5] 渲染进程和主进程
1 进程 Electron里头的进程分为渲染进程和主进程。简单理解: main.js就是主进程每个页面就是渲染进程一个Electron应用仅有一个主进程,可以有多个渲染进程 上面的这些概念很重要,不展开细讲。 2 进程职责 主进程是用来实现应用的基础功能…...
基于Java SSM框架实现大学生校园兼职系统项目【项目源码+论文说明】
基于java的SSM框架实现大学生兼职系统演示 摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,大学生校园兼职系统当然也不能排除在外。大学生校园兼职系统是以实际运用为开…...
Codeforces Round 913 (Div. 3) A~E
目录 A. Rook 问题分析: B. YetnotherrokenKeoard 问题分析: C. Removal of Unattractive Pairs 问题分析: D. Jumping Through Segments 问题分析: E. Good Triples 问题分析: A. Rook 问题分析: 给一个棋子将其同行同列的位置输出 #include<bits/s…...
反序列化 [网鼎杯 2020 朱雀组]phpweb 1
打开题目 我们发现这个页面一直在不断的刷新 我们bp抓包一下看看 我们发现index.php用post方式传了两个参数上去,func和p 我们需要猜测func和p两个参数之间的关系,可以用php函数MD5测一下看看 我们在响应处得到了一串密文,md5解密一下看看 发…...
Java 何时会触发一个类的初始化
Java 何时会触发一个类的初始化? 使用new关键字创建对象访问类的静态成员变量 或 对类的静态成员变量进行赋值调用类的静态方法反射调用类时,如 Class.forName()初始化子类时,会先初始化其父类(如果父类还没有进行过初始化的话&a…...
我的记事本
url uniform resource locator. 统一资源定位符 请求状态码 1XX:信息响应 2XX:成功响应 3XX:重定向消息 4XX:客户端错误响应 5XX:服务器端错误响应 IP地址分类 本机回环IP地址:127.0.0.1 ~ 127.255.255.254 局域网IP(私网IP) 192.168.0.0 &am…...
GO设计模式——4、单例模式(创建型)
目录 单例模式(Singleton Pattern) 优缺点 使用场景 饿汉式和懒汉式单例模式 单例模式(Singleton Pattern) 单例模式(Singleton Pattern)是一个类只允许创建一个对象(或者实例ÿ…...
我对迁移学习的一点理解——领域适应(系列3)
文章目录 1. 领域适应(Domain Adaptation)的基本概念2.领域适应(Domain Adaptation)的目标3.领域适应(Domain Adaptation)的实现方法4.领域适应(Domain Adaptation)的可以解决的问题…...
【openssl】RSA 生成公钥私钥 |通过私钥获取公钥
通过博客:Window系统如何编译openssl 编译出openssl.exe(位于apps文件夹下)。 现在需要使用它获得公钥私钥、通过私钥获取公钥 目录 说明!!! 一.定位openssl.exe目录 二、进入命令cmd 三、生成私钥 …...
MongoDB的删除文档、查询文档语句
本文主要介绍MongoDB的删除文档、查询文档命令语句。 目录 MongoDB删除文档MongoDB查询文档 MongoDB删除文档 MongoDB是一种基于文档的NoSQL数据库,它使用BSON格式存储文档。删除文档是MongoDB数据库中的常见操作之一。 下面是MongoDB删除文档的详细介绍和示例&am…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
