前言:
思考一个问题,如果想要记录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循环适用于遍历数据容器的场景或简单的固定次数循环场景
本次内容就到此啦,欢迎评论区或者私信交流,觉得笔者写的还可以,或者自己有些许收获的,麻烦铁汁们动动小手,给俺来个一键三连,万分感谢 !