数据容器——list(列表)
list定义
# list字面量
[元素1, 元素2, 元素3, ...]
# 定义list变量
变量名称 = [元素1, 元素2, 元素3, ...]
# 定义空list列表
变量名称 = []
变量名称 = list()
列表内的每一个数据,称为 元素
- 以[]作为标识
- list每一个元素之间用 , 隔开
注意:列表可以一次存储多个数据,且可以是不同类型的数据,支持嵌套
name_list = ["itheima", "itcast", "python"]
print(name_list)
print(type(name_list))
my_special_list = ["sun", 100, True]
print(my_special_list)
print(type(my_special_list))
my_sp_list_list = [[1, 2, 3], [4, 5, 6]]
print(my_sp_list_list)
print(type(my_sp_list_list))
list下标(索引)
# 语法:列表[下标索引]
name_list = ["itheima", "itcast", "python"]
print(name_list[0])
print(name_list[1])
print(name_list[2])
# 下标索引可以取负数(反向)
print(name_list[-1])
print(name_list[-2])
print(name_list[-3])
# 嵌套list的下标索引
my_sp_list_list = [[1, 2, 3], [4, 5, 6]]
print(my_sp_list_list[0][2]) # 3
注意:通过下标索引取数字,一定不要超出范围,否则会报错。
# IndexError: list index out of range
name_list = ["itheima", "itcast", "python"]
print(name_list[3])
list常用操作方法
- 查找某元素下标——查
# 功能:查找某元素在列表中的下标,找不到会报 ValueError: 'xxx' is not in list
# 语法:列表.index(元素)
# index()是列表对象(变量)内置的方法(函数)
name_list = ["itheima", "itcast", "python"]
index = name_list.index("itheima")
print(index)
index = name_list.index("hello")
print(index) # ValueError: 'hello' is not in list
- 修改特定位置的元素值——改(赋值)
# 语法:列表[下标] = 值
# 对指定下标(正向 反向下标均可)的值进行重新赋值
name_list = ["itheima", "itcast", "python"]
name_list[2] = "java"
print(name_list)
- 插入元素——插
# 语法:列表.insert(下标, 元素)
# 在指定的下标位置插入指定的元素
name_list = ["itheima", "itcast", "python"]
name_list.insert(2, "java")
print(name_list) # ['itheima', 'itcast', 'java', 'python']
name_list.insert(2, 100)
print(name_list) # ['itheima', 'itcast', 100, 'java', 'python']
- 追加元素——增
# append 追加一个元素
# 语法:列表.append(元素)
# 将指定元素追加到列表的尾部
name_list = ["itheima", "itcast", "python"]
name_list.append("c++")
print(name_list) # ['itheima', 'itcast', 'python', 'c++']
# extend 追加一批元素
# 语法:列表.extend(其他数据容器)
# 将其他数据容器的内容取出,依次追加到列表尾部
name_list = ["itheima", "itcast", "python"]
num_list = [1, 2, 3]
name_list.extend(num_list)
print(name_list) # ['itheima', 'itcast', 'python', 1, 2, 3]
# 注意:如果用append(数据容器),会成为嵌套
name_list = ["itheima", "itcast", "python"]
num_list = [1, 2, 3]
name_list.append(num_list)
print(name_list) # ['itheima', 'itcast', 'python', [1, 2, 3]]
- 删除元素
# 指定【下标】删除元素
# 语法1:del 列表[下标]
# 语法2:列表.pop(下标)
name_list = ["itheima", "itcast", "python"]
del name_list[1]
print(name_list) # ['itheima', 'python']
# pop()方法可以将列表中index的元素取出来(删除),并返回(可用变量接收)
name_list = ["itheima", "itcast", "python"]
element = name_list.pop(1)
print(name_list) # ['itheima', 'python']
# 注意:python中一切皆对象,del是python中的关键字,用于删除对象(变量、列表或列表片段等)。
# 指定【元素】删除元素
# 语法:列表.remove(元素)
# 删除某元素在列表中的第一匹配项
name_list = ["python", "itheima", "java", "itcast", "python", "java", "c++"]
name_list.remove("java")
print(name_list) # ['python', 'itheima', 'itcast', 'python', 'java', 'c++']
# 清空列表
# 语法:列表.clear()
# 清空列表全部元素,只剩[]空列表
name_list = ["python", "itheima", "java", "itcast", "python", "java", "c++"]
name_list.clear()
print(name_list) # []
- 统计元素在列表中的数量
# 语法:列表.count(元素)
name_list = ["python", "c", "java", "js", "python", "java", "c++", "python"]
count = name_list.count("python")
print(count) # 3
- 统计容器内元素个数
# 语法:len(列表)
# 可以得到一个int数字,表示列表内元素的数量
name_list = ["python", "c", "java", "js", "python", "java", "c++", "python"]
count = len(name_list)
print(count) # 8
# 注意:len()是python中的内建函数
list特点
- 可以容纳多个元素(上限为2 ^ 63 -1)
- 可以容纳不同类型元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加删除元素等)
列表的遍历 - while循环
将容器内的元素依次取出进行处理的行为,称为遍历或迭代
def list_while_fun():
my_list = ["chuanzhi", "meima", "python"]
index = 0
while index < len(my_list):
print(my_list[index])
index += 1
def list_for_fun():
my_list = ["chuanzhi", "meima", "python"]
for element in my_list:
print(element)
def list_for_2_fun():
my_list = ["chuanzhi", "meima", "python"]
for index in range(len(my_list)):
print(my_list[index])
while循环和for循环,都是循环语句,但细节不同:
-
在循环控制上:
- while循环可以自定循环条件,并自行控制
- for循环不可以自定循环条件,只可以一个个从容器内取出
-
在无限循环上:
- while循环可以通过条件控制实现无限循环
- for循环理论上不可以,以为被遍历的容器容量不是无限的
-
在使用场景上:
- while循环适用于任何想要的循环场景
- for循环适用于遍历数据容器的场景或简单的固定次数循环场景
思考
# del -- python关键字?
# len() -- python内建函数?