python之详解列表

news2024/12/23 21:02:30

有序的可变容器,可以存储不同类型的元素。用中括号[]表示。

1、列表的查找访问

1.1、通过下标查找。

与字符串类似,列表也可通过 列表名[index] 的方式查找其中的元素。

索引的初始值为0,最大值为列表长度-1。

示例:

list1 = [1,2,3,4,5]
length_list1 = len(list1)
print(list1[0])
print(list1[length_list1-1])
print(list1[-1])

1.2、通过切片查找。

与字符串方法类似,直接看示例。

示例:

list1 = [1,2,3,4,5,6]
print(list1[::])
print(list1[:-1:2])
print(list1[-1::-1])

1.3、index方法

index:根据所给元素,查找其索引。其用法与字符串类似。

结果:成功则返回索引值,失败则报错。

示例:

list1 = [1,2,3,4,5,6]
print(list1.index(2))
print(list1.index(7))

2、列表的添加

添加:添加列表元素有三种方法,分别是append、insert和extend。

append:直接在列表尾部进行添加。

返回值:无。

示例:

list1 = [1,2,3,4]
list2 = list1.append(5)
list1.append(6)
print(list1)
print(list2)

每次只能添加一个元素。

insert:根据给定的索引位置,在前面添加。

返回值:无。

示例:

list1 = [1,2,3,4,5]
list2 = list1.insert(1,"666")
print(list1)
print(list2)

注意:示例的1为索引,不是列表的值。

extend:将两个列表在尾部进行合并。可理解为将另一个列表append到新列表的后面。

返回值:无。

示例:

list1 = [1,2,3]
list2 = [4,5,6]
list3 = list1.extend(list2)
print(list1)
print(list3)

由此可见,这三种添加方式是直接修改原列表的,并不需要新增列表去接收。

3、列表的修改

修改:直接通过索引下标去修改列表的元素。

示例:

list1 = [1,2,3,4]
list1[0] = "666"
print(list1)

还有一种,通过切片的方式修改。

示例:

list1 = [1,2,3,4]
list1[1:3] = [666,666]
print(list1)

请问,字符串可以跟列表一样,直接修改吗?

回答:不能。

示例:

str1 = "asdaf"
str1[0] = "1"
print(str1)

后面会谈到可变类型和不可变类型。

4、列表的删除

删除:共有三种方法,分别是pop、remove、del和clear。

pop:删除列表最后一个元素。

返回值:删除的那个元素。

示例:

list1 = [1,2,3,4,666]
list2 = list1.pop()
print(list1)
print(list2)

remove:删除匹配到的第一个元素。

返回值:无。

示例:

list1 = [1,2,3,4,666,666]
list2 = list1.remove(666)
print(list1)
print(list2)

del:删除指定索引的元素。

示例:

list1 = [1,2,3,4,666,666]
del list1[0]
print(list1)

clear:删除列表全部元素。

返回值:无。

示例:

list1 = [1,2,3,4,666,666]
list2 = list1.clear()
print(list1)
print(list2)

5、排序

sort:对列表内的元素按照大小进行排序。这里建议对数字进行排序。

参数:reverse(可选)。reverse=True,表示降序排列。默认为升序排列。

示例:

list1 = [1,6,2,8,5,3,0,9]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)

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

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

相关文章

刷题 位运算 / 数学

面试经典 150 题 - 位运算 ⭐️⭐️67. 二进制求和 加法进位 class Solution { public:string addBinary(string a, string b) {int na a.size(), nb b.size();string ans;ans.reserve(max(na, nb) 1); // 预留空间,避免动态扩展时的性能损耗int carry 0;for …

platform bus平台总线详解

往期内容 驱动中的device和device_driver结构体-CSDN博客bus总线的相关结构体和注册逻辑-CSDN博客bus中设备驱动的probe触发逻辑和device、driver的添加逻辑-CSDN博客 前言 注:以下的代码皆摘自于linux 4.9.88版本的内核源码,不同版本可能有所出入。 之…

【EXCEL数据处理】保姆级教程 000016案例 EXCEL的vlookup函数。

【EXCEL数据处理】000016案例 vlookup函数。 前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】保姆级教…

【动态规划】斐波那契模型 dp

动态规划的步骤: 状态表示。所谓状态表示就是 dp 表里的值表示什么含义,那么状态表示怎么找呢? a. 题目要求 b. 经验(以某一个位置为结尾 / 起点) 题目要求 c. 分析问题的过程中发现重复子问题状态转移方程。dp[ i ] …

ChatGPT Canvas:系统提示词泄漏了~

OpenAI 推出了一款叫做 Canvas 的新工具,用来帮助用户更好地与 ChatGPT 协作写作和编程。详细介绍可以看这篇文章:ChatGPT Canvas:交互式对话编辑器-CSDN博客​编辑 以下是 OpenAI 新功能 “Canvas” 的系统提示内容 你是 ChatGPT&#xff0…

基于连续小波变换(CWT)批量生成一维信号的时频图 最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处理。附详细的说明文档。

Matlab基于连续小波变换(CWT),将一维信号批量生成时频图的源代码。此示例中,原始信号data是30*1280的格式,一共30条信号,信号长度为1280。最终生成30张时频图。生成的图像可用于后续的深度学习分类或其他处…

SpringBoot开发——SpringSecurity安全框架17个业务场景案例(二)

文章目录 一、Spring Security 常用应用场景介绍二、Spring Security场景案例6、CSRF 保护(CSRF Protection)6.1 Spring Security 配置6.2 业务逻辑代码7、密码编码(Password Encoding)7.1 Spring Security 配置7.2 业务逻辑代码7.3 控制器8、方法级安全性(Method Securit…

Vue2电商项目(八) 完结撒花:图片懒加载、路由懒加载、打包的map文件

一、图片懒加载 安装:npm i vue-lazyload1.3 -s (弹幕建议按1.3版本) 引入 // 引入懒加载的图片 import hlw from /assets/hulu.jpg // 引入插件 import VueLazyload from vue-lazyload // 引入插件 Vue.use(VueLazyload, {// 懒加载默认的图…

Oracle登录报错-ORA-01017: invalid username/password;logon denied

接上文:Oracle创建用户报错-ORA-65096: invalid common user or role name 我以为 按照上文在PDB里创建了用户,我以为就可以用PLSQL远程连接了,远程服务器上也安装了对应版本的Oracle客户端,但是我想多了,客户只是新建…

【爬虫】网站反debugger、内存爆破以及网站限制开发者工具

【爬虫】网站反debugger、内存爆破以及网站直接限制开发者工具 声明:本文中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途&#xff0…

JWT集成Keycloak

一、直接使用现有域账号、密码获取token方式 1.KeyClack 使用现有配置 Client id : account-console 2.服务配置文件配置 3.API接口配置 4. 获取token 5.调用方式(Swagger)(代码方式直接在请求头加上token) 5.1 配置在Swagger访问 5.2 访问需要认证的接…

JavaWeb——Vue路由(概述、介绍、使用、解决bug)

目录 概述 介绍 使用 解决bug 概述 员工管理的页面已经制作完成。其他页面的制作方式一致。 项目中准备了部门管理的页面组件 DeptView ,这样就有了员工管理和部门管理两个页面组件。 在系统中,要实现点击部门管理菜单展示部门管理组件&#xff0c…

为什么Java不支持多重继承?

不支持多重继承主要是因为会产生“菱形继承”,也称为钻石继承的问题。 那什么是菱形继承呢? 它涉及到一个类继承两个父类,而这两个父类又继承自同一个祖先类。这种结构在没有适当处理的情况下,会导致继承层次中的歧义和冗余。 如…

关于BSV区块链覆盖网络的常见问题解答(下篇)

​​发表时间:2024年9月20日 在BSV区块链上的覆盖网络服务为寻求可扩展、安全、高效交易处理解决方案的开发者和企业家开辟了新的视野。 作为开创性的曼达拉升级的一部分,覆盖网络服务提供了一个强大的框架,用于管理特定类型的交易和数据访问…

【目标检测】室内地板砖铺设缺陷检测数据集2000张VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2002 标注数量(xml文件个数):2002 标注数量(txt文件个数):2002 标注…

图论大总结

图论基础 98. 所有可达路径 result [] path [] def dfs(graph,x,n):if x n:result.append(path[:])returnfor i in range(1,n1):if graph[x][i] 1:path.append(i)dfs(graph,i,n)path.pop() def main():n,m map(int,input().split())# 邻接矩阵graph [[0]*(n1) for _ in …

【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。EXCEL文档安全性设置。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000021 案例 保姆级教程,附多个操作案例。…

C#高级编程笔记--字符串和正则表达式

本章的主要内容如下: 创建字符串 格式化表达式 正则表达式​​​​​​​ 1.1 System.String类 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类型非常重要,C#提供了它自己…

【C++堆(优先队列)】2233. K 次增加后的最大乘积|1685

本文涉及知识点 C堆(优先队列) 贪心(决策包容性) LeetCode 2233. K 次增加后的最大乘积 给你一个非负整数数组 nums 和一个整数 k 。每次操作,你可以选择 nums 中 任一 元素并将它 增加 1 。 请你返回 至多 k 次操作后,能得到的 nums的 最…

用Python实现运筹学——Day 15: 线性规划的项目实战

一、学习内容 在本节中,我们将综合应用之前学习的线性规划知识,解决一个复杂的实际问题。通过这个实战项目,进一步理解线性规划在资源分配问题中的应用。 二、实战案例:公司资源分配问题 2.1 问题描述: 某公司生产两…