【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循环适用于遍历数据容器的场景或简单的固定次数循环场景


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


目录
相关文章
|
21天前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
27 1
|
22天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
22天前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
2月前
|
数据可视化 算法 JavaScript
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
本文探讨了如何利用图论分析时间序列数据的平稳性和连通性。通过将时间序列数据转换为图结构,计算片段间的相似性,并构建连通图,可以揭示数据中的隐藏模式。文章介绍了平稳性的概念,提出了基于图的平稳性度量,并展示了图分区在可视化平稳性中的应用。此外,还模拟了不同平稳性和非平稳性程度的信号,分析了图度量的变化,为时间序列数据分析提供了新视角。
60 0
基于图论的时间序列数据平稳性与连通性分析:利用图形、数学和 Python 揭示时间序列数据中的隐藏模式
|
21天前
|
索引 Python
SciPy 空间数据1
SciPy 通过 `scipy.spatial` 模块处理空间数据,如判断点是否在边界内、计算最近点等。三角测量是通过测量角度来确定目标距离的方法。多边形的三角测量可将其分解为多个三角形,用于计算面积。Delaunay 三角剖分是一种常用方法,可以对一系列点进行三角剖分。示例代码展示了如何使用 `Delaunay()` 函数创建三角形并绘制。
28 0
|
2月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
33 0
|
2月前
|
存储 JSON 数据处理
分析、总结Python使用列表、元组、字典的场景
分析、总结Python使用列表、元组、字典的场景
|
2月前
|
存储 自然语言处理 Java
【Python】列表和元组
【Python】列表和元组
20 0
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
|
2月前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)