python数据容器之列表
列表的定义语法:[元素1, 元素2, 元素3, …]列表内的每一个数据,称之为元素以 [ ] 作为标识列表内每一个元素之间用, 逗号隔开注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套列表的特点:可以容纳多个元素,上限为2**63-1可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增加或删除元素等)下标索引列表中的每一个元素,都有其位置下标索引
python数据容器-列表
1、列表
列表的定义语法 :[元素1, 元素2, 元素3, …]
列表内的每一个数据,称之为元素
以 [ ] 作为标识
列表内每一个元素之间用, 逗号隔开
注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套
列表的特点:
可以容纳多个元素,上限为2**63-1
可以容纳不同类型的元素(混装)
数据是有序存储的(有下标序号)
允许重复数据存在
可以修改(增加或删除元素等)
name_list = ["like", 222, True]
num_list = [[1, 2, 3], "数字", [4, 5, 6]]
下标索引
列表中的每一个元素,都有其位置下标索引,从前向后的方向,从0开始,依次递增
或者,可以反向索引,也就是从后向前:从-1开始,依次递减(-1、-2、-3…)
嵌套列表:如上面的例子,取出2:num_list[0][1]
我们只需要按照下标索引,即可取得对应位置的元素。 要注意下标索引的取值范围,超出范围无法取出元素,并且会报错。
列表常用操作
-
查找某元素的下标
功能:查找指定元素在列表的下标,如果找不到,报错ValueError语法:列表.index(元素)
-
修改特定下标位置的元素值
语法:列表[下标] = 值
可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值 -
向列表中插入元素
语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素 -
追加元素方式1:添加元素到列表中
语法:列表.append(元素),将指定元素,追加到列表的尾部 -
追加元素方式2:
语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部list_1 = [1, 2, 3, 4, 5, 6] list_2 = [7, 8, 9] list_1.extend(list_2) print(list_1) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
-
删除元素
语法1: del 列表[下标] 只有删除功能
语法2:列表.pop(下标) 将元素从列表中取出,等同于删除,取出的元素可以作为返回值传给变量
list_1 = [1, 2, 3, 4, 5, 6]
get_element = list_1.pop(2) # 取出的值传给变量
print(list_1) # [1, 2, 4, 5, 6]
print(get_element) # 3
语法3: 列表.remove(元素)删除某元素在列表中的第一个匹配项
-
清空列表内容,语法:列表.clear()
-
统计某元素在列表内的数量,语法:列表.count(元素)
-
统计列表内,有多少元素
语法:len(列表)
可以得到一个int数字,表示列表内的元素数量
列表的遍历
将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代。
利用for 和 while循环
while循环和for循环,都是循环语句,但细节不同:
在循环控制上:
while循环可以自定循环条件,并自行控制
for循环不可以自定循环条件,只可以一个个从容器内取出数据在无限循环上:
while循环可以通过条件控制做到无限循环
for循环理论上不可以,因为被遍历的容器容量不是无限的在使用场景上:
while循环适用于任何想要循环的场景
for循环适用于,遍历数据容器的场景或简单的固定次数循环场景
- while循环遍历列表
循环条件:
定义一个变量表示下标,从0开始
循环条件为 下标值 < 列表的元素数量
def get_name():
"""
遍历列表,依次取出列表中的元素,并输出
:return: None
"""
list_1 = ["zhang", "wang", "li"]
index = 0
while index < len(list_1):
one_name = list_1[index]
print(f"取出来的名字是:{one_name}")
index += 1
- for循环实现列表的遍历
表示,从容器内,依次取出元素并赋值到临时变量上。 在每一次的循环中,我们可以对临时变量(元素)进行处理。
语法: for 临时变量 in 数据容器:
list_1 = ["zhang", "wang", "li"]
for i in list_1:
print(i)
更多推荐
所有评论(0)