Python学习笔记——列表

news2025/1/19 16:56:26

Python列表函数&方法

函数:

len(list):列表元素个数

max(list):返回列表元素最大值

min(list):返回列表元素最小值

list(seq):将元组转换为列表

方法

list.append(obj):在列表末尾添加新的对象

list.count(obj):统计某个元素在列表中出现的次数

list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj):从列表中找出某个值第一个匹配项的索引位置

list.insert(index, obj):将对象插入列表

list.pop([index=-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

list.remove(obj):移除列表中某个值的第一个匹配项

list.reverse():反向列表中元素

list.sort( key=None, reverse=False):对原列表进行排序

list.clear():清空列表

list.copy():复制列表

列表是什么

在Python中,用方括号( [] )来表示列表,并用逗号来分隔其中的元素。
列表中的每个值都有对应的位置值,称之为索引,索引从 0开始。
  • 列表由一系列按特定顺序排列的元素组成;

  • 可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中;

  • 列表的数据项不需要具有相同的类型,列表中的元素之间可以没有任何关系;

  • 列表都可以进行的操作包括索引,切片,加,乘,检查成员。

访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。

要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。

#!/usr/bin/python3

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
#列表索引从 0 开始
print( list[0] )    #red

#索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推
print( list[-1] )    #black

可以使用方括号 [] 的形式截取字符:

#!/usr/bin/python3

nums = [10, 20, 30, 40, 50, 60, 70, 80, 90]
print(nums[0:4])    #[10, 20, 30, 40]

# 从第二位开始(包含)截取到倒数第二位(不包含)
print ("list[1:-2]: ", list[1:-2])    #[20, 30, 40, 50, 60, 70, 80]

更新列表

创建的大多数列表都将是动态的,这意味着列表创建后,将随着程序的运行增删元素。

修改列表元素

要修改列表元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。
list = ['Google', 'Runoob', 1997, 2000]
 
print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])

在列表中添加元素

  1. 在列表末尾添加元素:使用 append() 方法将元素添加到了列表末尾

  1. 在列表中插入元素:使用方法 insert() 可在列表的任何位置添加新元素

list = ['aaa', 'bbb', 'ccc']
list.insert(0, 'ddd')
print(list)    #['aaa', 'bbb', 'ccc', 'ddd']

从列表中删除元素

  1. 使用 del 语句删除元素(根据索引位置删除元素)

  1. 使用方法 pop() 删除元素(删除列表末尾的元素)

  1. 弹出列表中任何位置处的元素(pop(索引)可删除指定位置的元素)

  1. 根据值删除元素(使用方法 remove())

注意:

方法 remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要

使用循环来判断是否删除了所有这样的值。

如果你要从列表中删除一个元素,且不再以任何方式使用它,就使用 del 语句;如果你要在删除元素后还能继续使用它,就使用方法 pop() 。

列表排序

使用方法 sort() 对列表进行永久性排序

cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)    #['audi', 'bmw', 'subaru', 'toyota']

#按与字母顺序相反的顺序排序,只需向 sort() 方法传递参数reverse=True 。
cars.sort(reverse=True)
print(cars)    #['toyota', 'subaru', 'bmw', 'audi']

使用函数 sorted() 对列表进行临时排序

要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数 sorted() 。
函数sorted() 让你能够按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
cars = ['bmw', 'audi', 'toyota', 'subaru']

#['audi', 'bmw', 'subaru', 'toyota']
print(sorted(cars))
#['bmw', 'audi', 'toyota', 'subaru']
print(cars)

注意:调用函数 sorted() 后,列表元素的排列顺序并没有变。如果你要按与字母顺序相反的顺序显示列表,也可向函数 sorted() 传递参数 reverse=True 。

反序

使用方法 reverse() 可反转列表元素的排列顺序

cars = ['bmw', 'audi', 'toyota', 'subaru']

cars.reverse()
print(cars)    #['subaru', 'toyota', 'audi', 'bmw']

列表的长度

使用函数 len() 可快速获悉列表的长度。

Python列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

len([1, 2, 3])    #长度:3    
[1, 2, 3] + [4, 5, 6]    #组合:[1, 2, 3, 4, 5, 6]    
['Hi!'] * 4    # 重复:['Hi!', 'Hi!', 'Hi!', 'Hi!']   
3 in [1, 2, 3]    #元素是否存在于列表中:True    
for x in [1, 2, 3]: print(x, end=" ")    #迭代:1 2 3    

#使用嵌套列表即在列表里创建其它列表
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]

列表比较

列表比较需要引入 operator 模块的 eq 方法
# 导入 operator 模块
import operator

a = [1, 2]
b = [2, 3]
c = [2, 3]
print("operator.eq(a,b): ", operator.eq(a,b))    #operator.eq(a,b):  False
print("operator.eq(c,b): ", operator.eq(c,b))    #operator.eq(c,b):  True

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

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

相关文章

字典树总结

字典树 一、概念 字典树 (Trie) 是一种用于实现字符串快速存储和检索的多叉树结构; Trie 的每个节点都拥有若干个字符指针,若在插入或检索字符串时扫描到一个字符 ccc ,就沿着当前节点的 ccc 字符指针,走向该指针指向的节&…

支持向量机(SVM)入门(六,解决遗留问题)

但也出现了如下结果,看来任务没完没了(svm深似海?),还得下功夫:前面我们的支持向量机到此便止步了,一晃两年,这几天有空,顺便研究了一下,问题有进展&#xff…

基于yolov5-v7.0开发构建汽车车损实例分割检测识别分析系统

在之前的文章中我们已经做了很多基于yolov5完成实例分割的项目,感兴趣的话可以自行移步阅读:《基于YOLOv5-v7.0的药片污染、缺损裂痕实例分割检测识别分析系统》《基于yolov5-v7.0开发构建裸土实例分割检测识别模型》《基于yolov5-v7.0开发实践实例分割模…

NSThead的进阶使用和简单探讨

概述 NSThread类是一个继承于NSObjct类的轻量级类。一个NSThread对象就代表一个线程。它需要管理线程的生命周期、同步、加锁等问题,因此会产生一定的性能开销。 使用NSThread类可以在特定的线程中被调用某个OC方法。当需要执行一个冗长的任务,并且不想…

文件minio进阶 分页查询

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、minio使用二、代码1.mino版本是最新的,那么pom中也要最新的2. 部分代码总结前言 就是现在通过minio管理文件,然后不需要其他信息,所以我也就没有用传统方式…

探究视频标注如何支持自动驾驶汽车

自动驾驶汽车技术有望使我们的道路更安全,同时提高运输和交付服务的效率。安全性和可靠性是自动驾驶汽车广泛采用所必需的关键因素。为了保证汽车在现实复杂的交通条件下导航能够有效运行,必须使用标注数据来训练基于计算机视觉的模型,这些数…

verilog学习笔记- 10)按键控制 LED 灯实验

目录 简介: 实验任务: 硬件设计: 程序设计: 下载验证 : 总结与反思: 简介: 按键开关是一种电子开关,属于电子元器件类。我们的开发板上有两种按键开关:第一种是本实…

NeRF制作数据集最后的踩坑

之前对数据集渲染的时候一直出现模糊的问题: 学长说可能是摄像机和poses没有对应。但是为什么会这样呢 后来我发现,确实在制作的过程中,某一步出了问题,导致下标的数字,跟理想的不一样: 原来的12&#xf…

基于yolov5-v7.0开发构建工业机械齿轮瑕疵实例分割检测识别分析系统

在之前的文章中我们已经做了很多基于yolov5完成实例分割的项目,感兴趣的话可以自行移步阅读:《基于YOLOv5-v7.0的药片污染、缺损裂痕实例分割检测识别分析系统》《基于yolov5-v7.0开发构建裸土实例分割检测识别模型》《基于yolov5-v7.0开发实践实例分割模…

深度学习PyTorch 之 DNN-回归(多变量)

深度学习&PyTorch 之 DNN-回归中使用HR数据集进行了实现,但是HR数据集中只有一个变量,这里我们使用多变量在进行模拟一下 流程还是跟前面一样 #mermaid-svg-LN8ayy7UjtqZ6dSj {font-family:"trebuchet ms",verdana,arial,sans-serif;font…

计算机原理三_进程管理

目录儿四、进程管理4.1 什么是进程4.1.1 进程的结构4.1.2 进程的特征4.1.3 进程与线程4.1.4 线程的实现方式用户级线程内核支持线程组合线程的调度4.2 进程是怎么运行的4.2.1 进程状态4.2.2 进程控制4.2.2.1 原语的概念4.2.2.2 挂起与激活4.2.3 进程调度4.2.3.1 调度层次4.2.3.…

CSS入门一、初识

零、文章目录 文章地址 个人博客-CSDN地址:https://blog.csdn.net/liyou123456789个人博客-GiteePages:https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee:https://gitee.com/bluecusliyou/TechLearnGithub:https:…

【BP靶场portswigger-服务端9】服务端请求伪造SSRF漏洞-7个实验(全)

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

Episode 02 对称密码基础

一、从文字密码到比特序列密码 1、使用对称密钥进行加密 为了使原来的明文无法被推测出来,就要尽可能地打乱密文,这样才能达到加密的目的。密文打乱的是比特序列,无论是文本,图片还是音乐,只要能够将数据转换比特序列…

MSF后渗透持续后门

持续后门 ○ 利用漏洞取得的meterpreter shell运行于内存中,重启失效 ○ 重复exploit漏洞可能造成服务崩溃 ○ 持久后门保证漏洞修复后仍可远程控制 Meterpreter后门 run metsvc -A #删除-r use exploit/multi/handler set PAYLOAD windows/metsvc_bind_tcp se…

[22]. 括号生成

[22]. 括号生成题目算法设计:回溯算法设计:空间换时间题目 传送门:https://leetcode.cn/problems/generate-parentheses/ 算法设计:回溯 括号问题可以分成俩类: 括号的合法性判断,主要是用栈括号的合法生…

【自然语言处理】Word2Vec 词向量模型详解 + Python代码实战

文章目录一、词向量引入二、词向量模型三、训练数据构建四、不同模型对比4.1 CBOW4.2 Skip-gram 模型4.3 CBOW 和 Skip-gram 对比五、词向量训练过程5.1 初始化词向量矩阵5.2 训练模型六、Python 代码实战6.1 Model6.2 DataSet6.3 Main6.4 运行输出一、词向量引入 先来考虑一个…

IDEA远程快速部署SpringBoot项目到Docker环境

1.LInux上先安装docker环境 https://blog.csdn.net/YXWik/article/details/128643662 2.配置Docker远程连接端口 1. vim /usr/lib/systemd/system/docker.service 2. 找到ExecStar 在后面添加 -H tcp://0.0.0.0:2375 3. 退出编辑界面:先按esc,然后"…

【JAVA程序设计】(C00100)基于Springboot+html的前后端分离停车场管理系统

基于Springboothtml的前后端分离停车场管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于SpringBoothtml的前后端分离的停车场管理系统,本系统分为二种角色:管理员和收银员。 1.登录:管理员可以通过系统分配的账号…

Android 系统框架结构

目录 1.应用层(System Apps): 2.应用框架层(Java API Framework): 3.系统运行库层(Native): 4.硬件抽象层(HAL): 5.Linux内核层(Linux Kernel): 大部分开发的同学是不太清楚Android的系统的…