首页 > Python资料 博客日记
Python中的列表(list)
2024-09-19 14:00:06Python资料围观40次
1、列表的定义
列表(list)是一个有序且可更改的集合,并且是最常用的 Python 数据类型。
在Python中,列表中元素的数据类型可以不同,可以包含整数、浮点、字符串等,当然,也可以包含列表、元组、字典和集合等。
在 Python 中,列表是使用方括号 “[]”
编写的,在列表中使用“逗号(,)”来将列表中的元素隔断。当“[]”内没有元素时,该列表为空。
list1 = [22,45.32,"Python",["holle","word"],True]
# 含有五个元素的列表,其中["holle","word"]作为列表,是list1中一个单独的元素
list2 = [] # 空列表
2、列表的索引及切片
2.1索引
2.1.1正向索引
将列表中的元素从零开始进行编号,将编号作为其下标。想要输出列表中某一具体元素,只需带上其下标即可。
例:list1 = [22,45.32,"Python",["holle","word"],True],输出其中元素“Python”,则根据其编号下标为“2”。
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# 0 1 2 3 4
print(list1[2])
# 输出结果为"Python"
2.1.2反向索引
同时下标也可以从后往前进行计算。即从最后一个元素开始,将其下标记为“-1”,每向前一个元素,下标减一。
例: list1 = [22,45.32,"Python",["holle","word"],True],输出其中元素“Python”,则根据其编号下标为“-3”。
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# -5 -4 -3 -2 -1
print(list1[-3])
# 输出结果为"Python"
2.2切片
根据索引方法,可以用下表表示:
列表元素 | 22 | 45.32 | Python | ["holle","word"] | True |
正向索引 | 0 | 1 | 2 | 3 | 4 |
反向索引 | -5 | -4 | -3 | -2 | -1 |
切片是将列表中某一段相关的元素进行输出。即一次输出列表中的多个元素。
例:list1 = [22,45.32,"Python",["holle","word"],True],同时输出其中元素“45.32”“Python”“["holle","word"]”,则再输出时将单个下标替换为"起始下标:结束下标+1“”。起始下标为输出第一个元素的下标,结束下标为输出的最后一个元素的下标,下标不可超出列表中最后一个元素的下标。
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# 0 1 2 3 4
print(list1[1:4])
# 输出结果为:“[True, ['holle', 'word'], 'Python']”
若想输出的为“22”“Python”“True”,元素之间间隔为一,则在输出时在下标后加入步长(即间距)。
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# 0 1 2 3 4
print(list1[0:5:2])
# 5后面的2为步长,即每两个进行一次输出,当没有写明时系统默认为1
# 输出结果为:[22, 'Python', True]
若想进行倒叙输出,则需要将步长改为“-1”,要将下标大的作为起始下标,而结束下标则需要减一。
例:方法一:使用正向索引下标。
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# 0 1 2 3 4
# -5 -4 -3 -2 -1
print(list1[4:0:-1]) # 输出结果:[True, ['holle', 'word'], 'Python', 45.32]
print(list1[4:-1:-1]) # 输出结果[]
由于下标“4”和“-1”表示同一个元素,所以输出结果为空,该方法不能输出第一个列表元素。
方法二:使用反向索引下标
list1 = [22,45.32,"Python",["holle","word"],True]
# 22 45.32 'Python' ['holle', 'word'] True
# 0 1 2 3 4
# -5 -4 -3 -2 -1
print(list1[-1:-6:-1]) # 输出结果[True, ['holle', 'word'], 'Python', 45.32, 22]
3、列表相互转化
3.1列表与字符串
3.1.1列表转字符串
将列表中的元素转化为字符串时,使用一个空字符串接收由列表转换的字符串。
可使用内置函数“str”直接将列表转换为字符串,但是这种方法会将列表中的“[]”“,”以及引号也作为字符串进行转化
list1 = ["a","b","c","d","e"]
str1 = str(list1)
print(str1)
# 输出结果为:['a', 'b', 'c', 'd', 'e']
也可使用字符拼接的“join拼接方法”。转换为字符串时,列表内的元素也只能是字符串。
list1 = ["a","b","c","d","e"]
str1 = "".join(list1)
print(str1)
# 输出结果为:abcde
3.1.2字符串转列表
将字符串转化为列表,可以使用内置函数“list”直接将字符串转化为列表。
str1 = "abcde"
list1 = list(str1)
print(list1)
# 输出结果为:['a', 'b', 'c', 'd', 'e']
4、列表的添加、删除、修改
4.1添加
4.1.1添加单个元素(append)
在列表中添加单个元素时,可以使用函数“append”。
使用方法(列表名称.append("添加元素”)),例:list1.append("f")
元素添加为位置在列表的最后。
list1 = list1 = ['a', 'b', 'c', 'd', 'e']
list1.append('f')
print(list1)
# 输出结果为:['a', 'b', 'c', 'd', 'e', 'f']
4.1.2添加多个元素(extend)
在列表中添加多个元素时,可以使用函数“extend”。
使用方法(列表名称.extend(["添加元素”,"添加元素”])),例:list1.extend(["f",“h”])
元素添加为位置在列表的最后。
list1 = ['a', 'b', 'c', 'd', 'e']
list1.extend(['f','h'])
print(list1)
# 输出结果为:['a', 'b', 'c', 'd', 'e', 'f', 'h']
4.1.3指定位置添加元素(insert)
当想在列表的任意位置加入元素时,可以使用函数“insert”。
使用方法(列表名称.insert(下标,'元素'),例:list1.insert(2,'m')
在指定的下标位置加入元素,原本位置的元素及其后面元素下标均往后加一。
list1 = ['a', 'b', 'c', 'd', 'e']
list1.insert(0,'h')
print(list1)
# 输出结果为:['h', 'a', 'b', 'c', 'd', 'e']
4.2删除
4.2.1删除位置元素(pop)
删除列表最后一个或指定位置元素,使用函数“pop”。
删除最后一个元素:"列表名称.pop()”,例:list1.pop()
删除指定位置元素:"列表名称.pop(位置下标)”,例:list1.pop(3)
当pop内未指明下标时,默认删除最后一位元素。
list1 = ['a', 'b', 'c', 'd', 'e']
list1.pop() # 删除“e”
print(list1)
# 输出结果为:['a', 'b', 'c', 'd']
list1 = ['a', 'b', 'c', 'd', 'e']
list1.pop(2) # 删除“c”
print(list1)
# 输出结果为:['a', 'b', 'd', 'e']
4.2.2删除指定元素(remove)
删除列表中特定的元素时,使用函数“remove”,删除的是出现的第一个指定元素,后面在此出现相同元素并不会被删除。可用循环来进行所有指定元素的删除。
列表名称.remove("元素”),例:list1.remove(‘e’)
list1 = ['a', 'b', 'e','c', 'd', 'e']
list1.remove('e') # 删除“e”
print(list1)
# 输出结果为:['a', 'b', 'c', 'd', 'e']
4.2.3清除(clear)
使用clear,清除列表中的所有元素。
列表名称.clear(),例:list1.clear()
list1 = ['a', 'b', 'e','c', 'd', 'e']
list1.clear()
print(list1)
# 输出结果为:[]
4.3修改
直接使用赋值的方法,让想要修改元素的下标等于修改元素。
列表名称(下标) = ‘修改元素’。例:list1(0) = ‘l’
list1 = ['a', 'b', 'e','c', 'd', 'e']
list1[1] = 'j' #修改“b”为“j”
print(list1)
# 输出结果为:['a', 'j', 'e', 'c', 'd', 'e']
5、列表的其他应用
5.1统计次数、获取长度
统计某个元素出现的次数,使用“count”
统计列表的总长度,使用“len”
list1 = ['a', 'b', 'e','c', 'd', 'e']
num = list1.count("e") # 统计“e”出现的次数
print(num)
# 输出结果为:2
len1 = len(list1) # 统计列表的长度
print(len1)
# 输出结果为:6
5.2排序、翻转
5.2.1排序(sort、sorted)
sort在排序时,是在对原列表本身进行改变,不需要另外一个空列表来进行接收,没有返回值。
sorted在排序时,并不是对原列表本身进行改变,这时需要一个空列表进行接收排序后的列表,有返回值。
sort、sorted均默认正序排序。
list = [7,4,9,88,1,5.6]
list1 = [7,4,9,88,1,5.6]
list2 = list.sort()
print(list) # 输出:[1, 4, 5.6, 7, 9, 88]
# 列表本身改变,在列表内部进行排序
print(list2) # 输出:None
# 无法接收到排序后的列表
list3 = sorted(list1)
print(list1) # 输出:[7, 4, 9, 88, 1, 5.6]
# 列表本身没有改变,在列表外部进行排序
print(list3) # 输出:[1, 4, 5.6, 7, 9, 88]
# 接收到排序后的列表
逆序排序:添加函数(reverse)
使用函数“reverse”可以对列表进行逆序排序,当reverse的值等于True时,进行逆序排序;当reverse的值等于False时,进行正序排序。
list = [7,4,9,88,1,5.6]
list.sort(reverse = True)
print(list) # 输出:[88, 9, 7, 5.6, 4, 1]
list.sort(reverse = False)
print(list) # 输出:[1, 4, 5.6, 7, 9, 88]
list1 = [7,4,9,88,1,5.6]
list3 = sorted(list1,reverse = True)
print(list3) # 输出:[88, 9, 7, 5.6, 4, 1]
list3 = sorted(list1,reverse = False)
print(list3) # 输出:[1, 4, 5.6, 7, 9, 88]
在对列表中的字符串进行排序时,通过ASCLL码表的值进行排序。同时若列表元素中字符串有多个元素时,用第一个元素的ASCLL码值进行比较大小。
list = ["B","bac","cde","a","Da"]
list.sort()
# 通过比较每个元素中的第一个字母的ASCLL码值来比较大小排序
# 即比较“B”“b”“c”“a”“D”的ASCLL码值进行排序
print(list)
# 输出结果为:['B', 'Da', 'a', 'bac', 'cde']
ASCLL码表可在网上进行查询。
5.2.2翻转(reverse)
对列表进行翻转,与排序sort相同,没有返回值,在列表内部进行翻转。
list = ["B",7,4,9,88,1,5.6,"a"]
list.reverse()
print(list)
# 输出结果为:['a', 5.6, 1, 88, 9, 4, 7, 'B']
5.3复制(copy)
生成一个新的列表,与元列表中的元素完全相同,但是两个列表的存储地址不同。两个列表并不是同一个列表。
list1 = ['a', 'b', 'e','c', 'd', 'e']
list2 = list1.copy()
print(list1,id(list1))
# 输出list1,并输出list1的存储地址
# 输出结果为:['a', 'b', 'e', 'c', 'd', 'e'] 2664088953352
print(list2,id(list2))
# 输出list2,并输出list2的存储地址
# 输出结果为:['a', 'b', 'e', 'c', 'd', 'e'] 2664088953416
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj