Python - 数据容器list(列表)

news2024/12/23 4:38:40

目录

列表的定义

列表的下标(索引)

列表的常用操作

查找某元素的下标index

修改特定位置(索引)的元素值

插入元素insert

追加元素append

追加元素方式extend

删除元素pop与del

删除某元素在列表中的第一个匹配项remove

清空列表内容clear()

统计某元素在列表内的数量count

统计列表内元素len

使用方法总结

列表特点

列表的遍历


列表的定义

列表内的每一个数据,称之为元素

  • 以 [] 作为标识

  • 列表内每一个元素之间用, 逗号隔开

编辑

my_list=['csdn',"ssss",666,True,[1,2,3]]
print(my_list)
print(type(my_list))

编辑

注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套

列表的下标(索引)

正向索引:从前向后的方向,从0开始,依次递增

反向索引:从后向前:从-1开始,依次递减(-1、-2、-3......)

my_list=['csdn',"ssss",666,True,[1,2,3]]

print(my_list[0])
print(my_list[1])
print(my_list[2])
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])
csdn
ssss
666
[1, 2, 3]
True
666

嵌套的列表同理

my_list2=[[1,2,3],[4,5,6],[7,8,9]]
print(my_list2[0][0])
print(my_list2[-1])
print(my_list2[-1][-1])
1
[7, 8, 9]
9

列表的常用操作

查找某元素的下标index

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:列表.index(元素)

index就是列表对象(变量)内置的方法(函数)

my_list=['csdn',"ssss",666,True,[1,2,3]]
tmp=my_list.index(666)
print(tmp)
2

修改特定位置(索引)的元素值

语法:列表[下标] = 值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

my_list2=[[1,2,3],[4,5,6],[7,8,9],666]
my_list2[-1]=777
my_list2[2][1]=888print(my_list2)
[[1, 2, 3], [4, 5, 6], [7, 888, 9], 777]

插入元素insert

语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.insert(1,789)
print(my_list)
['csdn', 789, 'ssss', 666, True, [1, 2, 3]]

追加元素append

语法:列表.append(元素),将指定元素,追加到列表的尾部

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.append([6,6,6])
my_list.append(False)
print(my_list)
['csdn', 'ssss', 666, True, [1, 2, 3], [6, 6, 6], False]

追加元素方式extend

语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.extend([123,"sb",[6]])
print(my_list)
['csdn', 'ssss', 666, True, [1, 2, 3], 123, 'sb', [6]]

删除元素pop与del

语法1: del 列表[下标]

语法2:列表.pop(下标)

pop删除元素并返回删除的元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.pop(0)
print(my_list)

tmp=my_list.pop(2)
print(my_list)
print(tmp)
['ssss', 666, True, [1, 2, 3]]
['ssss', 666, [1, 2, 3]]
True

del为指定删除,不返回删除元素

my_list=['csdn',"ssss",666,True,[1,2,3]]
del my_list[0]
print(my_list)

del my_list[-1]
print(my_list)
['ssss', 666, True, [1, 2, 3]]
['ssss', 666, True]

删除某元素在列表中的第一个匹配项remove

语法:列表.remove(元素)

删除从前往后第一个元素

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
my_list.remove(True)
print(my_list)

my_list.remove([1,2,3])
print(my_list)
['csdn', 'ssss', True, 666, True, [1, 2, 3]]
['csdn', 'ssss', True, 666, True]

清空列表内容clear()

语法:列表.clear()

my_list=['csdn',"ssss",666,True,[1,2,3]]
my_list.clear()
print(my_list)
[]

统计某元素在列表内的数量count

语法:列表.count(元素)

my_list=['csdn',"ssss",666,True,[1,11,"111",'1'],1,1,1]
num1=my_list.count(1)
num2=my_list.count("csdn")
print(num1)
print(num2)
4
1

可见,count会查找容器里面所以同类型元素,包括嵌套容器里面的

统计列表内元素len

语法:len(列表)

my_list=['csdn',"ssss",666,True,[1,11,"111",'1']]
num=len(my_list)
print(num)
5

不包括嵌套容器里面元素

使用方法总结

编号

使用方式

作用

1

列表.append(元素)

向列表中追加一个元素

2

列表.extend(容器)

将数据容器的内容依次取出,追加到列表尾部

3

列表.insert(下标, 元素)

在指定下标处,插入指定的元素

4

del 列表[下标]

删除列表指定下标元素

5

列表.pop(下标)

删除列表指定下标元素

6

列表.remove(元素)

从前向后,删除此元素第一个匹配项

7

列表.clear()

清空列表

8

列表.count(元素)

统计此元素在列表中出现的次数

9

列表.index(元素)

查找指定元素在列表的下标

找不到报错ValueError

10

len(列表)

统计容器内有多少元素

列表特点

经过上述对列表的学习,可以总结出列表有如下特点:

  1. 可以容纳多个元素(上限为2**63-1、9223372036854775807个)

  1. 可以容纳不同类型的元素(混装)

  1. 数据是有序存储的(有下标序号)

  1. 允许重复数据存在

  1. 可以修改(增加或删除元素等)

列表的遍历

- while循环

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
index=0while index<len(my_list):
    e=my_list[index]
    print(e)
    index+=1print(my_list)
csdn
True
ssss
True
666
True
[1, 2, 3]
['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]

- for循环

my_list=['csdn',True,"ssss",True,666,True,[1,2,3]]
for i in my_list:
    print(i)
print(my_list)
csdn
True
ssss
True
666
True
[1, 2, 3]
['csdn', True, 'ssss', True, 666, True, [1, 2, 3]]

while循环和for循环,都是循环语句,但细节不同:
在循环控制上:

while循环可以自定循环条件,并自行控制

for循环不可以自定循环条件,只可以一个个从容器内取出数据
在无限循环上:

while循环可以通过条件控制做到无限循环

for循环理论上不可以,因为被遍历的容器容量不是无限的
在使用场景上:

while循环适用于任何想要循环的场景

for循环适用于,遍历数据容器的场景或简单的固定次数循环场景

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

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

相关文章

【JavaScript】获取和操作 DOM 节点

文章目录【JavaScript】获取和操作 DOM 节点一. DOM节点分类二. 获取节点(1) 获取元素节点1. 非常规元素节点2. 常规元素节点(2) 获取节点的方式三. 操作节点(1) 创建节点(2) 插入节点(3) 删除节点(4) 替换节点(5) 克隆节点(6) 节点属性四. 案例&#xff1a;微博发布【JavaScri…

使用云开发的垃圾分类、垃圾识别、答题的微信小程序源码+部署教程,文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题

使用云开发的垃圾分类、垃圾识别、答题的微信小程序 完整代码下载地址&#xff1a;使用云开发的垃圾分类、垃圾识别、答题的微信小程序 前言 项目介绍 小程序使用了云开发&#xff0c;包含文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题、腾讯机器人对话…

AndroidStudio启动app时闪退问题解决过程

问题描述: Android app在启动时闪退的问题有很多种,大部分可能集中在代码有问题上,譬如StartActivity的时候启动不了。 看提示里一般是有错误出现的,这个很好解决,只要找到对应的错误就可以了。 那么,还有一类问题,就是我这里出现的,启动成功,没有任何错误,查看lo…

Odoo 16 企业版手册 - 库存管理之库存调拨

库存调拨 拥有多个仓库的公司需要管理产品从一个地点转移到另一个地点。在某些情况下&#xff0c;公司可能在不同地点设有不同的分支机构&#xff0c;这需要付出巨大努力才能成功管理产品调拨。公司通常通过分配主要仓库和子仓库进行产品分销来管理这种情况。Odoo中的调拨功能支…

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

一、背景 前后端分离已经成为互联网项目开发标准&#xff0c;它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单&#xff0c;越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。 Mybatis-Plus是一个 Mybatis 的增强工具&#xff0c;有…

房产管理系统系统与数据中心对接要遵循的标准和规范

数图互通高校房产综合管理系统平台是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解…

票务公司网上订票系统

课程设计题目七&#xff1a;票务公司网上订票系统https://download.csdn.net/download/qq_45037155/87364367 点击此链接免费下载原文章&#xff01; 第1章 绪论 1.1 引言 在当今社会&#xff0c;速度决定了很多商业机构的成败。为了顺应时代发展&#xff0c;提高效率&#x…

2023年山东建筑安全员考试真题题库及答案

百分百题库提供建筑安全员考试试题、安全员证考试真题、安全员证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 51.申请从事建筑施工特种作业的人员,应当具备()基本条件。 A.年满18周岁且符合相关工种规定的年龄要求; B.经医院体检合格…

【Java多线程JUC入门详解】AQS原理详解

AQS 概述 AbstractQuenedSynchronizer抽象的队列式同步器, 在java.util.concurrent.locks包下。 我们常用的ReentrantLock中有一个抽象静态内部类Sync&#xff0c;就继承自AbstractQuenedSynchronizer。 abstract static class Sync extends AbstractQueuedSynchronizer { …

1.4日报

验收了TestMrlController 历经千辛万苦给电脑安装了vpn 因为昨天系统损坏&#xff0c;今天重新配置postman和navicat 遇到的困难及解决 linux安装vpn时官方给的教程&#xff1a; 可是ubnutu里没有yum&#xff0c;我得先下载yum 而默认镜像源里找不到yum软件包&#xff0c;…

单调栈 单调队列 专题

文章目录一、单调栈1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习二、单调队列1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习三、总结一、单调栈 1、问题模型 主要解决一类问题&#xff1a; O(n)O(n)O(n) 求数列中每个元素左…

PaddleNLP系列课程一:Taskflow、小样本学习、FasterTransformer

文章目录一、Taskflow1.1 前言1.2 Taskflow应用介绍1.2.1 词法分析1.2.2 命名实体识别1.2.3 文本纠错1.2.4 句法分析1.2.5 情感分析1.2.6 文本生成应用&#xff08;三行代码体验 Stable Diffusion&#xff09;1.2.7 使用技巧&#xff08;保存地址、批量推理&#xff09;二、 小…

Excel怎么转换成PDF?教你两招轻松搞定

Excel怎么转换成PDF&#xff1f;相信在工作中大家都或多或少需要转换文件的格式&#xff0c;我们会根据工作需求将word、excel、PPT、图片等文件转换成PDF文件。Excel表格是我们经常使用的一款录入数据的文件类型&#xff0c;因为excel文件打开查看时不是很方便&#xff0c;我们…

时序数据库 TDengine 3.0 参数体系使用方式汇总

在日常使用 TDengine 时&#xff0c;参数是用户们无法绕开的重要一环。深入了解参数的属性&#xff0c;生效范围&#xff0c;查询更改方式等会让我们在使用数据库的过程中更加节时高效&#xff0c;也有助于我们更加深入地理解数据库的架构体系。在 3.0 版本中&#xff0c;TDeng…

参数校验(Validator)

为什么要用validator 实战演练 1. Validated 声明要检查的参数 2. 对参数的字段进行注解标注 3. 在全局校验中增加校验异常 4. 测试 自定义参数注解 1. 比如我们来个 自定义身份证校验 注解 2. 然后自定义Validator 3. 使用自定义的注解 4.使用groups的校验 5.restful…

209数组-长度最小的子数组

题目 链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 思路 可以采用暴力&#xff0c;两个for循环&#xff0c;不断寻找符合条件的子序列。时间复杂度为O(n^2) 代码&#xff1a; class Solution { public:int minSubArrayLen(int target, v…

【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)

目录 一、信息泄露漏洞 1、简述&#xff1a; 2、危害&#xff1a; 3、示例&#xff1a; 4、漏洞的产生 5、影响 6、严重程度判定 二、发现和利用信息泄露漏洞 1、模糊测试 2、使用BP扫描仪 3、使用Burp的相关工具 4、工程信息响应 三、常见来源 1、示例&#xff…

【数据篇】34 # 如何处理多元变量?

说明 【跟月影学可视化】学习笔记。 从数据到图表展现 2014 年北京市的天气历史数据&#xff08;csv 格式&#xff09; 这里使用QCharts 图表库折线图来展示平均气温 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" …

PDF转换成word免费版网页版哪个好?办公就用它

我们在工作中经常需要对PDF文件进行编辑&#xff0c;所以可以将PDF文件转换为word文件&#xff0c;这样就可以随意编辑我们想要编辑的内容了&#xff0c;不过有些小伙伴不喜欢下载客户端&#xff0c;但是又不知道PDF转换成word免费版网页版哪个好&#xff0c;为了帮助大家更好的…

微信小程序是如何设计百亿级用户画像分析系统的?

导语 | “We分析”是微信小程序官方推出的数据分析平台&#xff0c;其中画像洞察是其中一个非常重要的功能模块。微信开发工程师钟文波将描述We分析画像系统各模块是如何设计&#xff0c;在介绍基础标签模块之后&#xff0c;重点讲解用户分群模块设计。希望相关的技术实现思路&…