Python数据容器(列表)

news2024/10/7 10:23:05

目录

  • 一.什么是数据容器
  • 二.数据容器:列表
    • 1.列表的定义
    • 2.列表的下标索引
    • 3.列表的常用操作
    • 4.总结
    • 5.练习
  • 三.列表的遍历
    • 1.列表的遍历
    • 2.while循环和for循环的对比
    • 3.练习

一.什么是数据容器

1.什么是数据容器

  • 一种可以存储多个元素的Python数据类型
    在这里插入图片描述

2.Python有哪些数据容器

  • list(列表)tuple(元组)str(字符串)set(集合)dict(字典)
    它们各有特点,但都满足可容纳多个元素的特性。

二.数据容器:列表

1.列表的定义

  • 基本语法
# 字面量
[元素1,元素2,元素3,元素4,...]

# 定义变量
变量名称 = [元素1,元素2,元素3,元素4,...]

# 定义空列表
变量名称 = []
变量名称 = list[]
  • 列表内的每一个数据,称之为元素
    • 以[]作为标识
    • 列表内每一个元素之间用,逗号隔开

示例

# 定义列表
my_list = ['程序员',666,True]
print(my_list)
print(type(my_list))
# 嵌套列表定义
my_list = [ [1,2,3],[4,5,6] ]
print(my_list)
print(type(my_list))
##输出
['程序员', 666, True]
<class 'list'>
[[1, 2, 3], [4, 5, 6]]
<class 'list'>

2.列表的下标索引

  • 列表的下标索引(正向)
    在这里插入图片描述
    示例
name_list = ['Tom','Lily','Rose']
print(name_list[0])   #结果 Tom
print(name_list[1])   #结果 Lily
print(name_list[2])   #结果 Rose
  • 列表的下标索引(反向)
    在这里插入图片描述
    示例
name_list = ['Tom','Lily','Rose']
print(name_list[-3])   #结果 Tom
print(name_list[-2])   #结果 Lily
print(name_list[-1])   #结果 Rose
  • 嵌套列表的下标索引
    在这里插入图片描述
    示例
# 2层嵌套list
my_list = [ [1,2,3],[4,5,6] ]

# 获取内层第一个list
print(my_list[0])   #结果 [1,2,3]

# 获取内层第一个list的第一个元素
print(my_list[0][0])   #结果 1

下标索引注意事项

  • 要注意下标索引的取值范围,超出范围无法取出元素,并且会报错

3.列表的常用操作

1.列表的查询功能

  • 查找某元素的下标
    • 功能:查找指定元素在列表中的下标,如果找不到,报错ValueError
    • 语法:列表.index(元素)
    • index就是列表对象(变量)内置的方法(函数)
my_list = ["itheima","itcast","python"]
print(my_list.index("itcast"))  # 结果 1

2.列表的修改功能

  • 插入元素
    • 语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素
my_list = [1,2,3]
my_list.insert(1,'itheima')
print(my_list)  # 结果 [1, 'itheima', 2, 3]
  • 追加元素
    • 语法:列表.append(元素),将指定元素追加到列表的尾部
# 追加单个元素
my_list = [1,2,3]
my_list.append('python')
print(my_list) # 结果 [1, 2, 3, 'python']
# 追加一批元素
my_list = [1,2,3]
my_list.append([3,4,5])
print(my_list) # 结果  [1, 2, 3, [3, 4, 5]]
  • 追加元素2
    • 语法:列表.extend(数据容器),将其他数据容器中的内容取出,依次追加到列表尾部
my_list = [1,2,3]
my_list.extend([4,5,6])
print(my_list)  # 输出 [1,2,3,4,5,6]
  • 删除元素
    • 语法1:del 列表[下标索引]
    • 语法2:列表.pop(下标索引)
# 方法1
my_list = [1,2,3]
del my_list[0]
print(my_list)  # 结果 [2,3]
# 方法2
my_list = [1,2,3]
my_list.pop(1)
print(my_list) #  结果 [1,3]
  • 删除某元素在列表中的第一个匹配项
    • 语法:列表.remove(元素)
my_list = [1,2,3,2,3]
my_list.remove(2)
print(my_list) #  结果 [1,3,2,3]
# 删除匹配到的第一个元素
  • 清空列表内容
    • 语法:列表.clear()
my_list = [1,2,3]
my_list.clear()
print(my_list)  # 结果 []
  • 统计某元素在列表的数量
    • 语法:列表.count(元素)
my_list = [1,2,3,2,3,2]
num = my_list.count(2)
print(num)  # 结果 3
# 元素2在列表中出现3次
  • 统计列表中有多少元素
    • 语法:len(列表)
    • 可以得到int数字,表示元素内的数量
my_list = [1,2,3,4,5]
print(len(my_list))  # 结果  5

4.总结

1.列表的常见使用方法

编号使用方式作用
1列表.(append)向列表中追加一个元素
2列表.extend(数据容器)将数据容器中的元素依次取出,追加到列表的尾部
3列表.insert(下标,元素)在指定下标处,插入指定元素
4del 列表[下标索引]删除列表指定下标索引元素
5列表.pop[下标索引]删除列表指定下标索引元素
6列表.remove(元素)从前向后,删除此元素第一个匹配项
7列表.clear()清空列表
8列表.count(元素)同级元素在列表中出现的次数
9列表.index(元素)查找指定元素在列表下的下标,找不到报ValueError
10len(元素)统计列表中元素的个数

2.列表的特点

  • 可以容纳多个元素
  • 可以容纳不同类型的元素(混装)
  • 数据是有序存储的(有下标序号)
  • 允许重复数据存在
  • 可以修改(增加或删除元素等)

5.练习

在这里插入图片描述

# 1.定义这个列表,并用变量接收它
my_list = [21,25,21,23,22,20]
print(my_list)
[21, 25, 21, 23, 22, 20]
# 2.追加一个31,到列表的尾部
my_list.append(31)
print(my_list)
[21, 25, 21, 23, 22, 20, 31]
# 3.追加一个新列表[29,33,30]到列表的尾部
my_list.extend([29,33,30])
print(my_list)
[21, 25, 21, 23, 22, 20, 31, 29, 33, 30]
# 4.取出第一个元素(应该是21)
print(my_list[0])
21
# 5.取出最后一个元素(应该是30)
print(my_list[-1])
30
# 6.查找31元素,在列表中的下标的位置
print(my_list.index(31))
6

三.列表的遍历

1.列表的遍历

  • while遍历
my_list = [1,2,3,4,5]
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 1
#结果 1 2 3 4 5
  • for遍历
my_list = [1,2,3,4,5]
for element in my_list:
    print(element)
#结果 1 2 3 4 5

2.while循环和for循环的对比

  • 在循环控制上:
    • while循环可以自定义循环条件,并自行控制
    • for循环不可以自定义循环条件,只可以一个个从容器中取出
  • 在无限循环上:
    • while循环可以通过条件控制做到无限循环
    • for循环理论上不可以,因为被遍历的容器不是无限的
  • 在使用场景上:
    • while循环适用于任何想要循环的场景
    • for循环适用于,遍历容器的场景或简单的固定次数的循环场景

3.练习

在这里插入图片描述

 # while循环
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list2 = []
index = 0
while index < len(my_list):
    if my_list[index] %2 == 0:
        my_list2.append(my_list[index])
    index += 1
print(f"通过while循环,从列表{my_list}中取出偶数,组成新列表{my_list2}")
通过while循环,从列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]中取出偶数,组成新列表[2, 4, 6, 8, 10]
# for循环
my_list = [1,2,3,4,5,6,7,8,9,10]
my_list2 = []
for element in my_list:
    if element %2 == 0:
        my_list2.append(element)
print(f"通过for循环,从列表{my_list}中取出偶数,组成新列表{my_list2}")
通过for循环,从列表[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]中取出偶数,组成新列表[2, 4, 6, 8, 10]

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

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

相关文章

c语言总是有小问题,是练的少吗?

c语言总是有小问题&#xff0c;是练的少吗&#xff1f; 题主说我做c语言的题目时候&#xff0c;是有思路的并且可以按照想法写下来&#xff0c;大体上看没有问题&#xff0c;但是到运行的时候总是不过关。就需要很长的时间找出那个细微的错误&#xff0c;这种细微的错误怎么才能…

“深入理解机器学习性能评估指标:TP、TN、FP、FN、精确率、召回率、准确率、F1-score和mAP”

目录 引言 分类标准 示例&#xff1a;癌症检测 1. 精确率&#xff08;Precision&#xff09; 2. 召回率&#xff08;Recall&#xff09; 3. 准确率&#xff08;Accuracy&#xff09; 4. F1-score 5. mAP&#xff08;均值平均精度&#xff09; 总结与通俗解释 引言 机器…

自动驾驶算法(九):多项式轨迹与Minimun Snap原理与Matab代码详解

目录 1 为什么需要轨迹优化 2 代码解析 3 完整代码 1 为什么需要轨迹优化 我们利用前八篇所学的博客可以利用RRT、A*、遗传算法等设计出一条折线轨迹&#xff0c;轨迹优化就是在路径优化的基础上将折线优化成曲线&#xff0c;这样更加有利于无人机的飞行。 那么什么是多项式轨…

史上第一款AOSP开发的IDE (支持Java/Kotlin/C++/Jni/Native/Shell/Python)

ASFP Study 史上第一款AOSP开发的IDE &#xff08;支持Java/Kotlin/C/Jni/Native/Shell/Python&#xff09; 类似于Android Studio&#xff0c;可用于开发Android系统源码。 Android studio for platform&#xff0c;简称asfp(爱上富婆)。 背景&下载&使用 背景 由…

8.4 矢量图层点要素分类(Categorized)渲染使用

文章目录 前言分类&#xff08;Categorized&#xff09;渲染QGis代码实现 总结 前言 前面几章介绍了矢量-点要素-单一符号的各种用法所谓单一符号是指点要素的符号在图层显示时只有一种形式下面介绍的分类&#xff08;Categorized&#xff09;渲染说明&#xff1a;文章中的示例…

【Python爬虫库】pytube使用方法

一、pytube库简介 pytube库是一个python第三方库&#xff0c;用于youtube视频的抓取和其他相关操作。官方文档&#xff1a;pytube 二、基本操作 1、显示视频标题 from pytube import YouTube yt YouTube(https://youtube.com/watch?vIAJsZWhj6GI) print(yt.title)说明&am…

自建网盘平台搭建(源码+教程)

为什么要自己搭建网盘&#xff0c;现在许多大厂的网盘&#xff0c;文件都添加了许多限制&#xff0c;有好多文件会遭到和谐&#xff0c;而且大部分网盘也都会限速&#xff0c;不开通VIP是很难用的&#xff01;这是一套可以运营的网盘&#xff0c;代码无加密可以进行二次开发。下…

dos命令bat结合任务计划程序自动执行py文件

效果 bat文件 run.bat @echo off call C:\ProgramData\Anaconda3\Scripts\activate.bat pytorch C:\ProgramData\Anaconda3\envs\pytorch\python.exe E:\Gerapy_py\gerapy\projects\xmtv\xmtv\start_urls.py下面这个bat文件可以用来判断py文件是否执行成功 @echo off call C…

【Java】Netty创建网络服务端客户端(TCP/UDP)

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Netty创建网络服务端客户端示例。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更…

MySQL模糊查询/模式匹配(Pattern Match)

使用SQL查询数据时&#xff0c;时常会遇到这种情况&#xff0c;我们并不需要精确的匹配&#xff0c;而是要查找具有某类特点的数据。这种场景我们就要用到模糊查询。MySQL中常用的模糊查询方法有2种&#xff1a; like语句模糊查询regexp正则表达式模式匹配 目录 一、使用like模…

基于SSM的社区生鲜电商平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

Java / Android 多线程和 synchroized 锁

s AsyncTask 在Android R中标注了废弃 synchronized 同步 Thread: thread.start() public synchronized void start() {/*** This method is not invoked for the main method thread or "system"* group threads created/set up by the VM. Any new functionali…

Visual Interpretability for Deep Learning: a Survey

Visual Interpretability for Deep Learning: a Survey----《深度学习的视觉可解释性:综述》 摘要 本文回顾了最近在理解神经网络表示以及学习具有可解释性/解耦的中间层表示的神经网络方面的研究。尽管深度神经网络在各种任务中表现出了优越的性能&#xff0c;但可解释性始终…

基于SpringBoot+Vue+uniapp微信小程序实验室预约管理平台详细设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

getid3 获取视频时长

1、首先&#xff0c;我们需要先下载一份PHP类—getid3https://codeload.github.com/JamesHeinrich/getID3/zip/master 2.我在laravel6.0 中使用 需要在composer.json 自动加载 否则系统访问不到 在命令行 执行 composer dump-autoload $getID3 new \getID3();//视频文件需要放…

【PostgreSql本地备份为dump文件与恢复】使用脚本一键备份为dump文件

环境&#xff1a;windows数据库&#xff1a;postgresql 1.准备脚本 backUpDb.bat 脚本为备份脚本&#xff0c;双击运行&#xff0c;右键可以选择编辑&#xff1b;restoreDb.bat 脚本为恢复脚本&#xff0c;双击运行&#xff0c;右键选择编辑&#xff1b; 1.1 脚本介绍 如上图…

数据结构:串(定义,基本操作,存储结构)

目录 1.串的定义2.串的基本操作3.字符集编码4.串的存储结构1.顺序存储2.链式存储 1.串的定义 串&#xff0c;即字符串( String&#xff09;是由零个或多个字符组成的有限序列。 一般记为s ‘a1a2……an’ (n ≥0) 其中&#xff0c;S是串名&#xff0c;单引号括起来的字符序列是…

企业清算有哪些类型?在哪里可以查看相关公告?

企业清算是什么&#xff1f; 企业清算指企业按章程规定解散以及由于破产或其他原因宣布终止经营后&#xff0c;对企业的财产、债权、债务进行全面清查&#xff0c;并进行收取债权&#xff0c;清偿债务和分配剩余财产的经济活动。 企业清算给分为破产清算&#xff0c;非破产清…

华为云交换数据空间 EDS:“可信、可控、可证”能力实现你的数据你做主

文章目录 前言一、数据安全流通价值的必要性和紧迫性1.1、交换数据空间&#xff08;EDS&#xff09;背景1.2、《数字中国建设整体布局规划》1.3、数据流通成为制约数据要素价值释放的瓶颈 二、华为云 EDS 解决方案介绍2.1、构建可控数据交换空间2.2、可控的数据交换框架2.3、定…

互联网医院|线上医疗引领行业发展

您是否曾经遇到过这样的问题&#xff1a;在忙碌的工作中&#xff0c;突然感到身体不适&#xff0c;但却又不想浪费时间和金钱去实体医院&#xff1f;或者是因为疫情的限制&#xff0c;出门看病变得困难重重&#xff1f;那么&#xff0c;今天我要向您介绍的&#xff0c;正是解决…