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

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

前言:

思考一个问题,如果想要记录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(下标,元素) 在指定下标处插入指定的元素
4 del 列表【下标】 删除指定下标元素
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)每一次循环都+1
    index += 1

2.for循环

语法:

for 临时变量 in 数据容器:

       对临时变量进行处理

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

3.对比

在循环控制上:

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

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

在无限循环上:

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

       for循环理论上不可以,因为被遍历的容器容量不是无限的

在使用场景上:

       while循环适用于任何想要循环的场景(更灵活

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


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


目录
相关文章
|
3天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
3天前
|
vr&ar Python
Python自激励阈值自回归(SETAR)、ARMA、BDS检验、预测分析太阳黑子时间序列数据
Python自激励阈值自回归(SETAR)、ARMA、BDS检验、预测分析太阳黑子时间序列数据
10 0
|
3天前
|
Python
Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列数据|数据分享
Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列数据|数据分享
|
3天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
3天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
3天前
|
机器学习/深度学习 自然语言处理 算法
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。
|
3天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】使用Scikit-learn进行数据编码
【4月更文挑战第30天】本文介绍了Python Scikit-learn库在机器学习数据预处理中的作用,尤其是数据编码。数据编码将原始数据转化为算法可理解的格式,包括标签编码(适用于有序分类变量)、独热编码(适用于无序分类变量)和文本编码(如词袋模型、TF-IDF)。Scikit-learn提供LabelEncoder和OneHotEncoder类实现这些编码。示例展示了如何对数据进行标签编码和独热编码,强调了正确选择编码方法的重要性。
|
3月前
|
存储 数据可视化 数据挖掘
Python在数据分析中的利器:Pandas库全面解析
【2月更文挑战第7天】 众所周知,Python作为一种简洁、易学且功能强大的编程语言,被广泛运用于数据科学和人工智能领域。而Pandas库作为Python中最受欢迎的数据处理库之一,在数据分析中扮演着举足轻重的角色。本文将全面解析Pandas库的基本功能、高级应用以及实际案例,带您深入了解这个在数据分析领域的利器。
58 1
|
6月前
|
数据采集 存储 数据挖掘
【Python】数据分析:pandas
【Python】数据分析:pandas
49 0
|
5月前
|
数据采集 SQL 数据挖掘
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?
Python 的科学计算和数据分析: 什么是 NumPy 和 Pandas?它们各自的作用是什么?