Python3列表是一种有序、可变的序列类型,可以存储任意类型的元素,是Python开发中使用频率最高的数据结构之一。掌握列表的创建方法和基本操作,是学习Python3的基础内容。

Python3列表的创建方式
1. 直接定义列表
最直观的创建方式是用方括号包裹元素,元素之间用逗号分隔,元素可以是数字、字符串、布尔值甚至其他列表等任意类型。
# 创建包含不同元素类型的列表 my_list = [1, "hello", True, [2, 3]] print(my_list) # 输出:[1, 'hello', True, [2, 3]] # 创建空列表 empty_list = [] print(empty_list) # 输出:[]
2. 使用list()构造函数创建
可以把其他可迭代对象(如字符串、元组、集合、range对象等)转换为列表。
# 把字符串转换为列表,每个字符作为列表元素
str_to_list = list("python")
print(str_to_list) # 输出:['p', 'y', 't', 'h', 'o', 'n']
# 把range对象转换为列表
range_to_list = list(range(5))
print(range_to_list) # 输出:[0, 1, 2, 3, 4]
# 把元组转换为列表
tuple_to_list = list((1, 2, 3))
print(tuple_to_list) # 输出:[1, 2, 3]
3. 列表推导式创建
列表推导式是一种简洁的创建列表的方式,通过表达式和可迭代对象快速生成符合要求的列表。
# 生成1到10的偶数列表 even_list = [i for i in range(1, 11) if i % 2 == 0] print(even_list) # 输出:[2, 4, 6, 8, 10] # 生成每个元素平方的列表 square_list = [x * x for x in range(5)] print(square_list) # 输出:[0, 1, 4, 9, 16]
Python3列表的基本操作
1. 访问和修改列表元素
列表通过索引访问元素,索引从0开始,也支持负数索引(从末尾开始计数,最后一个元素索引为-1)。可以直接通过索引修改对应位置的元素。
fruits = ["apple", "banana", "cherry"] # 访问索引为1的元素 print(fruits[1]) # 输出:banana # 修改索引为0的元素 fruits[0] = "orange" print(fruits) # 输出:['orange', 'banana', 'cherry'] # 负数索引访问 print(fruits[-1]) # 输出:cherry
2. 列表切片操作
切片可以获取列表的一段子列表,语法是list[start:end:step],start是起始索引(包含),end是结束索引(不包含),step是步长,默认值为1。
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 获取索引1到4的子列表 print(numbers[1:5]) # 输出:[1, 2, 3, 4] # 步长为2获取元素 print(numbers[::2]) # 输出:[0, 2, 4, 6, 8] # 反转列表 print(numbers[::-1]) # 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3. 列表的增删操作
列表支持动态添加和删除元素,常用的添加方法有append()、insert()、extend(),删除方法有remove()、pop()、del关键字。
test_list = [1, 2, 3] # append在末尾添加元素 test_list.append(4) print(test_list) # 输出:[1, 2, 3, 4] # insert在指定索引位置插入元素 test_list.insert(1, 5) print(test_list) # 输出:[1, 5, 2, 3, 4] # extend合并另一个可迭代对象到列表末尾 test_list.extend([6, 7]) print(test_list) # 输出:[1, 5, 2, 3, 4, 6, 7] # remove删除指定值的第一个匹配元素 test_list.remove(5) print(test_list) # 输出:[1, 2, 3, 4, 6, 7] # pop删除指定索引的元素,默认删除最后一个,返回被删除的元素 popped = test_list.pop(2) print(popped) # 输出:3 print(test_list) # 输出:[1, 2, 4, 6, 7] # del关键字删除指定索引或切片的元素 del test_list[0] print(test_list) # 输出:[2, 4, 6, 7] del test_list[1:3] print(test_list) # 输出:[2, 7]
4. 列表遍历操作
可以使用for循环直接遍历列表元素,也可以结合enumerate()函数同时获取索引和元素。
colors = ["red", "green", "blue"]
# 直接遍历元素
for color in colors:
print(color)
# 输出:
# red
# green
# blue
# 遍历索引和元素
for index, color in enumerate(colors):
print(f"索引{index}对应的颜色是{color}")
# 输出:
# 索引0对应的颜色是red
# 索引1对应的颜色是green
# 索引2对应的颜色是blue
5. 常用列表方法
除了上述操作,列表还有很多内置方法,以下是常用的几个:
len(list):返回列表的元素个数list.index(obj):返回指定元素第一次出现的索引,不存在则报错list.count(obj):返回指定元素在列表中出现的次数list.sort():对列表进行原地排序,默认升序,可传reverse=True降序sorted(list):返回排序后的新列表,原列表不变list.reverse():原地反转列表元素顺序
num_list = [3, 1, 4, 1, 5, 9, 2, 6] # 获取列表长度 print(len(num_list)) # 输出:8 # 统计元素1出现的次数 print(num_list.count(1)) # 输出:2 # 获取元素5的索引 print(num_list.index(5)) # 输出:4 # 原地排序 num_list.sort() print(num_list) # 输出:[1, 1, 2, 3, 4, 5, 6, 9] # 降序排序 num_list.sort(reverse=True) print(num_list) # 输出:[9, 6, 5, 4, 3, 2, 1, 1] # 原地反转 num_list.reverse() print(num_list) # 输出:[1, 1, 2, 3, 4, 5, 6, 9]