【Python】一篇带你掌握数据容器之列表

目录

前言:

一、列表

1.列表的定义

2.列表的下标索引

3.列表的常用操作

(1)index方法:查找某元素的下标

(2)修改特定位置下标的元素

(3)insert(下标,元素)方法:插入元素

(4)append(元素)方法:追加元素1

(5)extend(其他数据容器)方法:追加元素2

(6)del(列表【下标】)/列表.pop方法:删除元素

(7)列表.remove(元素)

(8)列表.clear():清空列表内容

(9)列表.count(元素):统计某元素在列表内的数量

(10)len(列表):统计列表内有多少个元素

4.列表总结

二、列表的遍历

1.while循环

2.for循环

3.对比


前言:

思考一个问题,如果想要记录5名学生的信息,如何做呢?方法一:定义5个变量,但是这种方法不高级且低效,那么有没有更简便的方式呢?由此我们就引入了数据容器,一个变量,记录多份数据,这样的方法就更优雅和高效

数据容器根据特点的不同,如:
是否支持重复元素
是否可以修改
是否有序,等

分为5类,分别是

列表 (list)、元组 (tuple) 、字符串 (str)、集合 (set) 、字典 (dict)

我们将一一学习它们

一、列表

1.列表的定义

基本语法:以[    ]  作为标识

# 字面量
[元素1, 元素2, 元素3,  元素4, ...]# 定义变量
变量名称 = [元素1, 元素2, 元素3,  元素4, ...]#定义空列表
变量的名称 = [ ]
变量的名称 = list( )

注意:

列表可以一次存储不同类型(甚至可以是列表)的多个数据,并且支持嵌套

my_list = ['bite', 666, True]
print(my_list)
print(type(my_list))

运行结果:

 


2.列表的下标索引

列表的每一个元素都有其位置下标索引,

(1)从前向后的方向,从0开始,依次递增

(2)从后往前的方向:从-1开始,依次递减

如果是嵌套的列表同样支持下标索引:

要想拿到3这个元素,那么它的下标就是列表【1】【0】 


3.列表的常用操作

编号使用方式作用
1列表.append(元素)向列表中追加一个元素
2列表.extend(数据容器)

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

3列表.insert(下标,元素)在指定下标处插入指定的元素
4del 列表【下标】删除指定下标元素
5列表.pop(下标)删除指定下标元素
6列表.remove(元素)从前往后,删除此元素第一个匹配项
7列表.clear()清空列表
8列表.count(元素)统计元素在列表中出现的次数
9列表.index(元素)查找指定元素的下标,找不到就报错
10

len(列表)

统计容器中有多少个元素
(1)index方法:查找某元素的下标

功能:查找某元素的下标,找到了返回元素下标,如果找不到就返回ValueError

语法:列表.index(元素)

mylist = ['bite', 666, True]
index = mylist.index(True)
print(f"True在列表中的下标索引是:{index}")#运行结果:2
(2)修改特定位置下标的元素

语法:列表[ 下标 ] = 值

mylist = ['bite', 666, True]
mylist[2] = "Python"
print(mylist)#运行结果:['bite', 666, 'Python']
(3)insert(下标,元素)方法:插入元素

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

mylist = ['bite', 666, True]
mylist.insert(1, 3)
print(mylist)#运行结果:['bite', 3, 666, True]
(4)append(元素)方法:追加元素1

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

mylist = ['bite', 666, True]
mylist.append([1, 2, 3])
print(mylist)#运行结果:['bite', 666, True, [1, 2, 3]]
(5)extend(其他数据容器)方法:追加元素2

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

mylist = ['bite', 666, True]
mylist.extend([1, 2, 3])
print(mylist)#运行结果:['bite', 666, True, 1, 2, 3]
(6)del(列表【下标】)/列表.pop方法:删除元素

语法1:del(列表【下标】)(没有“ . ")

mylist = ['bite', 666, True]
del mylist[0]
print(mylist)#运行结果:[666, True]

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

mylist = ['bite', 666, True]
mylist.pop(0)
print(mylist)#运行结果:[666, True]
(7)列表.remove(元素)

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

语法:列表.remove(元素)

mylist = ['bite', 666, True]
mylist.remove("bite")
print(mylist)#运行结果:[666, True]
(8)列表.clear():清空列表内容

语法:列表.clear()

mylist = ['bite', 666, True]
mylist.clear()
print(mylist)#运行结果:[]
(9)列表.count(元素):统计某元素在列表内的数量

语法:列表.count(元素)

mylist = [1, 2, 3, 5, 3, 2, 2]
print(mylist.count(2))#运行结果:3
(10)len(列表):统计列表内有多少个元素

语法:len(列表)

mylist = [1,  5,  2, 2]
print(len(mylist))#运行结果:4

4.列表总结

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

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

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

(4)允许重复数据存在

(5)可以修改(增加或删除元素)


二、列表的遍历

1.while循环

mylist = ['bite', 666, True]
index = 0
while index < len(mylist):# 通过index变量取出对应下标的元素element = mylist[index]print(f"列表的元素:{element}")#将循环变量(index)每一次循环都+1index += 1

2.for循环

语法:

for 临时变量 in 数据容器:

        对临时变量进行处理

mylist = ['bite', 666, True]
for element in mylist:print(f"列表的元素:{element}")

3.对比

在循环控制上:

       while循环可以自定循环条件并自行控制
        for循环不可以自定循环条件,只可以一个个从容器内取出数据

在无限循环上:
        while循环可以通过条件控制做到无限循环
        for循环理论上不可以,因为被遍历的容器容量不是无限的

在使用场景上:
        while循环适用于任何想要循环的场景(更灵活
        for循环适用于遍历数据容器的场景或简单的固定次数循环场景


本次内容就到此啦,欢迎评论区或者私信交流,觉得笔者写的还可以,或者自己有些许收获的,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢 !  

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

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

相关文章

基于SpringBoot+Vue的在线学习平台系统

基于SpringBootVue的在线学习平台系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 用户界面 登录界面 管理员界面 摘要 本文设计并实现了一套基于Spri…

Nuxt.js——基于 Vue 的服务端渲染应用框架

文章目录 前言一、知识普及什么是服务端渲染什么是客户端渲染&#xff1f;服务端渲染与客户端渲染那个更优秀&#xff1f; 二、Nuxt.js的特点Nuxt.js的适用情况&#xff1f; 三、Vue是如何实现服务端渲染的&#xff1f;安装依赖使用vue安装 Nuxt使用npm install安装依赖包使用n…

基于springboot实现桥牌计分管理系统项目【项目源码】

基于springboot实现桥牌计分管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&#…

基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码

基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于飞蛾扑火算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于飞蛾扑火优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

第一百七十一回 SearchBar组件

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"Material3中的IconButton"相关的内容&#xff0c;本章回中将 介绍SearchBar组件.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

2023 ChinaJoy后,Flat Ads成为游戏、社交出海的新选择

今年ChinaJoy 展会&#xff0c;共吸引了来自世界各地的 500 多家企业参展&#xff0c;预计吸引超过33万人次参观。ChinaJoy年年有&#xff0c;那今年对于行业来说有什么新变化呢&#xff1f; 01 出海热潮不减&#xff0c;新增客户明显提升 据不完全统计&#xff0c;展会期间前…

《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透

内网穿透之利用ICMP协议进行隧道穿透 一.前言二.前文推荐三.利用ICMP协议进行隧道穿透1.ICMPsh获取反弹shell2.PingTunnel 搭建隧道 四.本篇总结 一.前言 本文介绍了利用ICMP协议进行隧道穿透的方法。ICMP协议不需要开放端口&#xff0c;可以将TCP/UDP数据封装到ICMP的Ping数据…

Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL

问题&#xff1a; 启动项目的时候&#xff0c;报错了 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name apiModelSpecificationReader defined in URL [jar:file:/D:/.gradle/caches/modules-2/files-2.1/io.springfox/sp…

基于springboot实现驾校管理系统项目【项目源码】

基于springboot实现驾校管理系统演示 JAVA简介 JavaScript是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&#xff0…

免费分享一套基于Springboot+Vue的在线考试系统,挺漂亮的

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringbootVue的在线考试系统&#xff0c;分享下哈。 项目视频演示 【免费】springbootvue在线考试系统 Java毕业设计_哔哩哔哩_bilibili【免费】springbootvue在线考试系统 Java毕业设计项目来自互联网&a…

劲松HPV防治诊疗中心发布:HPV感染全面防治解决方案

在当今社会&#xff0c;HPV(人乳头瘤病毒)感染问题已成为广大公众关注的焦点。作为一种高度传染性的病毒&#xff0c;HPV感染不仅可能导致生殖器疣&#xff0c;还可能引发各种癌症。面对这一严重威胁&#xff0c;劲松HPV防治诊疗中心以其专业的医疗团队、正规的治疗流程和全方位…

ZYNQ_project:key_led

条件里是十进制可以不加进制说明&#xff0c;编译器默认是10进制&#xff0c;其他进制要说明。 实验目标&#xff1a; 模块框图&#xff1a; 时序图&#xff1a; 代码&#xff1a; include "para.v"module key_filter (input wire …

长春理工大学漏洞报送证书

获取来源&#xff1a;edusrc&#xff08;教育漏洞报告平台&#xff09; url&#xff1a;主页 | 教育漏洞报告平台 兑换价格&#xff1a;10金币 获取条件&#xff1a;提交长春理工大学任意中危或以上级别漏洞

Linux驱动开发——PCI设备驱动

目录 一、 PCI协议简介 二、PCI和PCI-e 三、Linux PCI驱动 四、 PCI设备驱动实例 五、 总线类设备驱动开发习题 一、 PCI协议简介 PCI (Peripheral Component Interconnect&#xff0c;外设部件互联) 局部总线是由Intel 公司联合其他几家公司一起开发的一种总线标准&#…

【数据结构】树与二叉树(十二):二叉树的递归创建(算法CBT)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

mysql基础 --子查询

文章目录 子查询子查询案例 子查询 一个查询语句&#xff0c;嵌套在另一个查询语句内部&#xff1b;子查询先执行&#xff0c;其结果被外层主查询使用&#xff1b;子查询放入括号内&#xff1b;子查询放在比较条件的右侧&#xff1b;子查询返回一条&#xff0c;为单行子查询(对…

python工具HIKVISION视频编码设备接入网关任意文件下载

python工具 构造payload /serverLog/downFile.php?fileName../web/html/serverLog/downFile.php漏洞证明 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用此文所提供的信息、技术或方法而造成的任何…

PyTorch技术和深度学习——三、深度学习快速入门

文章目录 1.线性回归1&#xff09;介绍2&#xff09;加载自由泳冠军数据集3&#xff09;从0开始实现线性回归模型4&#xff09;使用自动求导训练线性回归模型5&#xff09;使用优化器训练线性回归模型 2.使用torch.nn模块构建线性回归模型1&#xff09;使用torch.nn.Linear训练…

通过SD卡给某摄像头植入可控程序

0x01. 摄像头卡刷初体验 最近研究了手上一台摄像头的sd卡刷机功能&#xff0c;该摄像头只支持fat32格式的sd卡&#xff0c;所以需要先把sd卡格式化为fat32&#xff0c;另外微软把fat32限制了最大容量32G&#xff0c;所以也只能用不大于32G的sd卡来刷机。 这里使用32G的sd卡来…

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码

基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于樽海鞘群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于樽海鞘群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…