Python中数据结构列表详解

news2025/1/16 12:38:05

列表是最常用的 Python 数据类型,它用一个方括号内的逗号分隔值出现,列表的数据项不需要具有相同的类型。

列表中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。列表都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。

1. 列表基本操作

1.1. 创建列表

list1 = [1, 2, 3, 4, 5 ]
list2 = ["a", "b", "c", "d"]
list3 = ['Google', 'Runoob', 1997, 2000]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']

1.2. 访问列表元素

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] )
# red
print( list[1] )
# green
print( list[2] )
# blue

索引也可以从尾部开始,最后一个元素的索引为 -1,往前一位为 -2,以此类推。

 代码如下所示:

list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[-1] )
# black
print( list[-2] )
# white
print( list[-3] )
# yellow

 1.3. 更新列表元素

list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2])
# 第三个元素为 :  1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
# 更新后的第三个元素为 :  2001

1.4. 删除列表元素

list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list)
# 原始列表 :  ['Google', 'Runoob', 1997, 2000]
del list[2]
print ("删除第三个元素 : ", list)
# 删除第三个元素 :  ['Google', 'Runoob', 2000]

2. 列表常见操作

2.1. 获取列表长度

list = ['AAA', 'BBB', "CCC", "DDD"]
print(len(list))
# 4

2.2. 多个列表拼接

A = ["AAA", "BBB", "CCC", "DDD"]
B = ["EEE", "FFF", "GGG", "HHH"]
C = A + B
print(C)
# ['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH']

2.3. 重复列表中的内容

A = ["AAA", "BBB", "CCC", "DDD"]
B = A * 2
print(B)
# ['AAA', 'BBB', 'CCC', 'DDD', 'AAA', 'BBB', 'CCC', 'DDD']

2.4. 判断是否存在列表中

list = ["AAA", "BBB", "CCC", "DDD"]
result = "AAA" in list
print(result)
# True

2.5. 列表迭代

list = ["AAA", "BBB", "CCC", "DDD"]

for x in list: 
    print(x, end="-")
    # AAA-BBB-CCC-DDD-

2.6. 列表截取

list = ["AAA", "BBB", "CCC", "DDD","EEE","FFF","GGG","HHH","FFF"]

resultA = list[1:]
print(resultA)
# ['BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'FFF']

resultB = list[1:-1]
print(resultB)
# ['BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH']

resultC = list[1:-1:2]
print(resultC)
# ['BBB', 'DDD', 'FFF', 'HHH']

2.6. 列表嵌套

A = ["AAA","BBB","CCC"]
B = ["DDD","EEE","FFF"]
C = [A,B]
print(C)
# [['AAA', 'BBB', 'CCC'], ['DDD', 'EEE', 'FFF']]

2.7. 列表比较

# 导入 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

3. 操作列表的函数

4. 列表包含的方法

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

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

相关文章

C语言之指针进阶篇(1)

目录​​​​​​​ 引言 字符指针 指针数组 数组指针 数组指针的定义 &数组名vs数组名 数组指针的使用 一维数组使用 二维数组使用 一维数组传参 二维数组传参 总结 数组参数 一维数组传参 二维数组传参 指针参数 一级指针传参 二级指针传参 引言 今…

Jmeter对websocket进行测试

JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar下载 公司使用websocket比较奇怪,需要带认证信息进行长连接,通过websocket插件是请求失败,如下图,后面通过代码实现随再打包jar包完成websocket测试 本地实现代码如下: pa…

总结,由于顺丰的问题,产生了电脑近期一个月死机问题集锦

由于我搬家,我妈搞顺丰发回家,但是没有检查有没有坏,并且我自己由于不可抗力因素,超过了索赔时间,反馈给顺丰客服,说超过了造成了无法索赔的情况,现在总结发生了损坏配件有几件,显卡…

Java 项目日志实例基础:Log4j

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 介绍几个日志使用方面的基础知识。 1 Log4j 1、Log4j 介绍 Log4j(log for java)是 Apache 的一个开源项目,通过使用 Log4j,我…

奥威BI数据可视化工具:个性化定制,打造独特大屏

每个人都有自己独特的审美,因此即使是做可视化大屏,也有很多人希望做出不一样的报表,用以缓解审美疲劳的同时提高报表浏览效率。因此这也催生出了数据可视化工具的个性化可视化大屏制作需求。 奥威BI数据可视化工具:个性化定制&a…

nginx代理webSocket链接响应403

一、场景 使用nginx代理webSocket链接,nginx响应403 1、nginx访问日志响应403 [18/Aug/2023:09:56:36 0800] "GET /FS_WEB_ASS/webim_api/socket/message HTTP/1.1" 403 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit…

opencv-dnn

# utils_words.txt 标签文件 import osimage_types (".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff")def list_images(basePath, containsNone):# return the set of files that are validreturn list_file…

机器学习|决策树:数学原理及代码解析

机器学习|决策树:数学原理及代码解析 决策树是一种常用的监督学习算法,适用于解决分类和回归问题。在本文中,我们将深入探讨决策树的数学原理,并提供 Python 示例代码帮助读者更好地理解和实现该算法。 决策树数学原…

大语言模型-RLHF(七)-PPO实践(Proximal Policy Optimization)原理实现代码逐行注释

从open AI 的论文可以看到,大语言模型的优化,分下面三个步骤,SFT,RM,PPO,我们跟随大神的步伐,来学习一下这三个步骤和代码实现,本章介绍PPO实践。 生活中,我们经常会遇到…

数字化时代,数据仓库和商业智能BI系统演进的五个阶段

数字化在逐渐成熟的同时,社会上也对数字化的性质有了进一步认识。当下,数字化除了前边提到的将复杂的信息、知识转化为可以度量的数字、数据,在将其转化为二进制代码,引入计算机内部,建立数据模型,统一进行…

Java数据库连接池原理及spring boot使用数据库连接池(HikariCP、Druid)

和线程池类似,数据库连接池的作用是建立一些和数据库的连接供需要连接数据库的业务使用,避免了每次和数据库建立、销毁连接的性能消耗,通过设置连接池参数可以防止建立连接过多导致服务宕机等,以下介绍Java中主要使用的几种数据库…

IP 地址监控工具

地址监控实用程序是一套 IP 工具,包括 IP 地址监控工具、流氓检测工具和 MAC 地址解析器,用于日常监控和管理 DNS 名称、IP和 MAC 地址。地址监控工具用于 IP监控,用于管理 DNS 名称、网络的 IP 和 MAC 地址,并跟踪 IP 地址。 IP…

基于基于springboot+vue+B2C模式的电子商务平台【源码+论文+演示视频+包运行成功】

博主介绍:✌csdn特邀作者、博客专家、java领域优质创作者、博客之星,擅长Java、微信小程序、Python、Android等技术,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推…

Unity 物体的运动之跟随鼠标

你想让鼠标点击哪里,你的运动的对象就运动到哪里吗? Please follow me ! 首先,你要先添加一个Plane ,以及你的围墙,你的移动的物体 想要实现跟随鼠标移动,我们先创建一个脚本 using System.Collections; using Syst…

Coremail参与编制|《信创安全发展蓝皮书——系统安全分册(2023年)》

信创安全发展蓝皮书 近日,Coremail参与编制的《信创安全发展蓝皮书—系统安全分册(2023年)》重磅发布。 此次信创安全发展蓝皮书由工业和信息化部电子第五研究所联合大数据协同安全技术国家工程研究中心重磅共同发布。 本次蓝皮书涵盖信创系…

关于路由器和DNS解析的一些新理解

其实我本人对于交换机和路由器这些网络硬件是比较感兴趣的,也在一点一点的学习相关知识,每次解决一个问题,就让我对一些事情有新的思考。。 今天前台同事,的机器突然上不了网,,和领导一起去看了一波&#…

Danswer 快速指南:不到15分钟打造您的企业级开源知识问答系统

一、写在前面 至于为什么需要做企业知识库,知识问答检索系统,以及现有GPT模型在企业应用中存在哪些劣势,今天在这里就不再赘述了,前面介绍其他构建知识库案例的文章中基本上都有讲过,如果您有兴趣可以去翻翻历史文章来…

小样本图像分类研究综述

https://kns.cnki.net/kcms2/article/abstract?v3uoqIhG8C44YLTlOAiTRKibYlV5Vjs7ioT0BO4yQ4m_mOgeS2ml3UDKtyAQtTA0dGC-TDvW_fPi0YZxfWg8dHOnpSvOL7pVA&uniplatformNZKPT 摘 要: 近年来,借助大规模数据集和庞大的计算资源,以深度学习为…

UE4/5Niagara粒子特效之Niagara_Particles官方案例:1.1->1.4

目录 1.1-Simple Sprite Emitter ​编辑 发射器更新 粒子生成 粒子更新 1.2-Simple Sprite Emitter 发射器更新 粒子生成 粒子更新 渲染 1.3-Simple GPU Emitter 属性 发射器更新 粒子生成 粒子更新 1.4-Sprite Facing 发射器更新 粒子生成 粒子更新 通过对官方…

Web菜鸟入门教程 - Radis实现高性能数据库

Redis是用C语言开发的一个高性能键值对数据库,可用于数据缓存,主要用于处理大量数据的高访问负载。 也就是说,如果你对性能要求不高,不用Radis也是可以的。不过作为最自己写的程序有高要求的程序员,自然是要学一下的&a…