Python 列表 pop()函数使用详解

news2024/11/18 9:27:20

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

pop函数使用详解

  • 1、按照索引删除元素
    • 1.1、正数索引
    • 1.2、负数索引
    • 1.3、不指定索引
  • 2、返回被删除的元素
  • 3、不同类型的元素
  • 4、常见错误

pop() 可以「删除」列表中的元素(默认最后一个)。

语法

list.pop( index )

参数

  • index :(可选)需要删除的元素的索引值

返回值

  • 返回被删除的元素

实例:删除列表中第一个元素

list1 = [1, 2, 3]

list1.pop(1)
print(list1)

输出:

[1, 3]

1、按照索引删除元素

pop() 可以根据指定的「索引」,删除对应「位置」的元素。

1.1、正数索引

索引为「正数」时,从 0 开始,按照从左往右的顺序删除

list1 = [1, 2, 3, 4]

print('删除前:', list1)
list1.pop(0)
print('删除后:', list1)

输出:

删除前: [1, 2, 3, 4]
删除后: [2, 3, 4]

指定的索引不能超过列表的「长度」,否则会报错 IndexError: pop index out of range

在这里插入图片描述


1.2、负数索引

索引为「负数」时,从 1 开始,按照从右往左的顺序删除

list1 = [1, 2, 3, 4]

print('删除前:', list1)
list1.pop(-1)
print('删除后:', list1)

输出:

删除前: [1, 2, 3, 4]
删除后: [1, 2, 3]

索引超过列表「长度」时,同样会报错 IndexError: pop index out of range

在这里插入图片描述

1.3、不指定索引

「不指定索引」时,默认是 -1,也就是删除最后一个元素

list1 = [1, 2, 3, 4]

print('删除前:', list1)
list1.pop()
print('删除后:', list1)

输出:

删除前: [1, 2, 3, 4]
删除后: [1, 2, 3]

2、返回被删除的元素

pop() 可以理解为「弹出」元素,它会返回被删除的元素,我们可以打印被删除的元素,来判断有没有删错。

list1 = [1, 2, 3, 4]

print(list1.pop())

输出:

4

3、不同类型的元素

上面的案例中,我们删除的都是一个元素,这个很好理解。

对于列表中「嵌套」列表这类情况,会把列表整体当做一个元素删掉,比如下面这样:

list1 = [1, 2, [1, 2, 3], 4]

print('删除前:', list1)
list1.pop(2)
print('删除前:', list1)

输出:

删除前: [1, 2, [1, 2, 3], 4]
删除前: [1, 2, 4]

列表中嵌套元祖、字典时,也同样整个删除

list1 = [1, 2, {1, 2, 3}, 4]

print('删除前:', list1)
list1.pop(2)
print('删除前:', list1)

输出:

删除前: [1, 2, {1, 2, 3}, 4]
删除前: [1, 2, 4]

即使嵌套很多层,也会整个删除

list1 = [1, 2, [1, [1, [1, 2]]], 4]

print('删除前:', list1)
list1.pop(2)
print('删除前:', list1)

输出:

删除前: [1, 2, [1, [1, [1, 2]]], 4]
删除前: [1, 2, 4]

4、常见错误

列表的 pop() 一次只能删除一个元素,否则会报错 TypeError: pop expected at most 1 argument

在这里插入图片描述

pop() 的参数必须是int,只能根据索引删除元素,否则会报错 TypeError: ‘str’ object cannot be interpreted as an integer

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker k8s

Docker docker到底与一般的虚拟机有什么不同呢? 我们知道一般的linux系统即GNU/Linux系统包括两个部分,linux系统内核GNU提供的大量自由软件,而centos就是众多GNU/Linux系统中的一个。 虚拟机会在宿主机上虚拟出一个完整的操作系统与宿主机完…

vue+openlayers 点击地图查询geoserver发布的WMS/WMTS图层的信息[矢量(点、线、面)+栅格]

一、基本介绍 网络地图服务 (WMS) 、网络地图切片服务 (WMTS) ,根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。 下面是常见的geoserver发布的图层格式,有矢量…

ODX(ISO22901)进阶——Intorduction to ODX

文章目录 前言一、Vehicle Diagnostic是什么?二、Diagnostic Data in ODX(诊断数据在ODX数据库)三、ODX企标概述(ODX Authoring Guidelines)总结前言 今天是2023年7月15日,距离2024年只剩下半年时间。伴随着各地疫情政策逐渐发开,三年的疫情终于迎来了不一样的变化。期…

AI绘画Stable Diffusion实战操作: 62个咒语调教-时尚杂志封面

今天来给大家分享,如何用sd简单的咒语输出好看的图片的教程,今天做的是时尚杂志专题,话不多说直入主题。 还不会StableDiffusion的基本操作,推荐看看这篇保姆级教程: AI绘画:Stable Diffusion 终极炼丹宝…

C++并发编程(1):基本概念、线程管控

学习视频与书籍 学习视频 c11并发与多线程视频课程 学习书籍 我本来打算去图书馆借《C新经典》的,偶然发现这本书,如获至宝 书挺新的,我看译者序是21年10月这本书挺贵的,后面写着139.80,大家还是去图书馆借吧作为基础…

Linux驱动之字符设备驱动框架与示例模板

目录 一、字符设备驱动简介 二、字符设备驱动开发步骤 1.确定设备号 2.定义 file_operations 结构体 3.实现操作函数 4.注册和注销字符设备 5.编译和加载模块 6.用户空间交互: 三、字符设备驱动示例模板 四、字符设备驱动开发总结 一、字符设备驱动简介 字…

未来Mac下载站怎么打不开了

重要公告: 未来软件园因业务需要现更换域名 原域名:Mac.orsoon.com 更为新域名:未来mac下载-Mac软件-mac软件下载-mac软件大全 程序已全面转移,请访问新域名

MySQL中的索引和事务 (数据库系列5)

目录 前言: 1.索引 1.1 索引的概念 1.2索引的作用 1.3索引的使用场景 1.4索引的使用 1.4.1查看索引 1.4.2创建索引 1.4.3删除索引 1.5索引背后的数据结构 1.5.1 B-树 1.5.2 B树 2.事务 2.1事务的概念 2.2数据库事务的四个特性 2.2.1原子性 2.2.2一…

城会玩,Selenium+Docker成功解决这一大难题

01、需求背景 日常测试中会遇到对web应用进行UI自动化的测试场景,一般常用的工具是使用Selenium,一套简单的UI自动化架构如下: 上图即为简单搭建的一套UI自动化测试架构,但 串行执行测试用例: 一台机器只能安装一个…

《英雄联盟》提示丢失D3DCompiler_43.dll的三个解决方法

在我们打开游戏《英雄联盟》的时候,计算机报错提示“由于找不到D3DCompiler_43.dll,无法继续执行此代码”,“D3DCompiler_43.dll丢失”是怎么回事呢?D3DCompiler_43.dll是一个Microsoft DirectX的组件文件,它是用于编译…

博客系统(使用前后端分离)

博客系统 前言一.准备工作1.1 准备好前端文件1.2 设计数据库1.3 编写基本的数据库代码1.4 封装好数据库的连接操作1.5 根据设计的表创建实体类1.6 根据实体类,提供一些简单的增删改查操作 二.博客要实现的功能2.1 博客列表页功能2.2 博客详情页2.3 博客登录页2.4 页面强制登录功…

涵子来信——AI的无限未来——谈谈想法

大家好: 这一次,我想要跟大家讲一讲我对AI的看法和未来的展望,谈谈我的想法。 AI(Artificial Intelligence,中文人工智能),是我们生活中处处都可以见到的,小到一个语音助手&#x…

ylb-接口13实名认证

总览: 在api模块下的service包,创建一个充值接口RechargeService,并创建一个(根据userID查询它的充值记录)方法: package com.bjpowernode.api.service;import com.bjpowernode.api.model.RechargeRecord…

迪赛智慧数——柱状图(多色柱状图):旅行灵感来源

效果图 涉足旅行就是一次睿智的选择,心系未来、永不停步,让精神和思维得到滋养,更加懂得珍惜和感恩,这是旅行给予生活的灵感。西方一位哲人也说过,“生命的意义在于尝试,体验不同的可能”,旅行能…

基于springboot+Redis的前后端分离项目(九)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 附近的商户、用户签到、UV统计 (一)附近的商户1.附近商户-GEO数据结构的基本用法2.附近商户-导入店铺数据到…

Python实现登陆界面+生日界面

文章目录 1. 需求分析1.1 功能分析1.2 性能分析 2. 技术原理3. 详细设计3.1 登录界面3.2 注册界面3.3 修改密码3.4 注销账户3.5 生日界面 4. 功能实现4.1 登陆界面4.2 注册界面4.3 修改密码4.4 注销账户4.5 生日界面 1. 需求分析 1.1 功能分析 ① 登录界面实现用户的登录、注…

消费者行为分析VR情景模拟演练系统

VR虚拟现实技术是一种先进的技术,利用VR开展消费者行为分析课程是一种创新的教育方式,它可以提高学生的学习兴趣和效果,同时也可以为企业提供更好的人才培训和发展机会。 1.帮助学生更好地理解和应用心理学概念:VR技术可以让学生…

【Vite搭建Vue3项目】如何使用自定义的svg

Vite搭建Vue3项目如何使用自定义的svg 1. 准备一份svg图标集放入到自己想放的目录2. 下载对应的插件并进行配置3. 测试使用 绪论:当用 vite 构建 vue3 项目的时候,咱可以使用 Element-plus 为我们提供的图标,但是它是一个个标签,当…

HTTP1.1 wireshark分析

本地springboot启动一个简单的服务,然后请求测试 tcpdump -i lo0 -nnvv -w tmp.cap tcpdump 本地回环网卡 http1.1 HTTP/1.0 每进行一次通信,都需要经历建立连接、传输数据和断开连接三个阶段。当一个页面引用了较多的外部文件时,这个建立…

两种异步日志方案的介绍

文章目录 一、日志写入逻辑1.1 相关接口函数1.2 写入逻辑 二、log4cpp 日志框架2.1 下载和编译2.2 日志级别2.3 日志格式2.4 日志输出2.5 日志回滚 三、muduo 异步日志库3.1 异步日志机制3.2 双缓冲机制3.3 前端日志写入3.4 后端日志落盘3.5 coredump 查找未落盘的日志3.6 总结…