今天我们来聊一聊Python中非常常用的一种数据结构——列表(list)。列表就像是一个能够装下各种物品的“购物车”,你可以随时往里面添加、删除或修改物品,非常灵活。
下面我就结合自己的学习笔记,带你全面了解列表的基本操作和常用方法,每个知识点都有实例演示,保证一看就懂!
一、创建列表
列表用方括号 [] 表示,里面的元素用逗号分隔。元素可以是任意类型(数字、字符串、甚至另一个列表)。
1. 直接使用 vs 赋值变量
# 直接使用(不赋值)print(["a", "b", "c", "d"]) # 输出:['a', 'b', 'c', 'd']# 赋值给变量(多次使用)li = ["a", "b", "c", "d", "e", "f"]print(li) # 输出:['a', 'b', 'c', 'd', 'e', 'f']print(type(li)) # 输出:<class 'list'>
二、访问列表元素
1. 索引(下标)
列表中的每个元素都有一个位置编号,叫做索引。Python索引从 0 开始,也支持负数索引,-1表示最后一个元素。
li = ["a", "b", "c", "d", "e", "f"]print(li[0]) # 输出:aprint(li[1]) # 输出:bprint(li[-1]) # 输出:f(最后一个)print(li[-2]) # 输出:e(倒数第二个)
2. 切片
切片可以一次获取多个元素,格式为 [start:stop:step],遵循包前不包后原则(包含 start,不包含 stop)。
看几个例子就明白了:
li = [1, 2, 3, 4, 5, 6, 7]# 取前5个元素(索引0~4)print(li[:5]) # 输出:[1, 2, 3, 4, 5]# 步长为3:从索引0开始,每隔3个取一个print(li[::3]) # 输出:[1, 4, 7](索引0、3、6)# 步长为-4:从右往左,每隔4个取一个print(li[::-4]) # 输出:[7, 3](索引-1、-5)# 取索引1到4(不包含5),步长为2print(li[1:5:2]) # 输出:[2, 4](索引1和3)
三、列表是可修改的
与字符串不同,列表中的元素可以被改变(可变类型)。
li = ["a", "b", "c", "d"]li[1] = "hello" # 把索引1的元素改为 "hello"print(li) # 输出:['a', 'hello', 'c', 'd']
四、列表嵌套
列表里面可以再装列表,形成二维甚至多维结构,非常适合表示表格数据。
grades = [[90, 96], [87, 68], [98, 89]]# 获取第一个子列表print(grades[0]) # 输出:[90, 96]# 获取第一个子列表的第一个元素print(grades[0][0]) # 输出:90# 获取第二个子列表的第二个元素print(grades[1][1]) # 输出:68
五、列表的常用内建函数(方法)
1. 添加元素
fruits = ["apple", "banana"]# appendfruits.append("orange")print(fruits) # 输出:['apple', 'banana', 'orange']# extendfruits.extend(["grape", "mango"])print(fruits) # 输出:['apple', 'banana', 'orange', 'grape', 'mango']# insertfruits.insert(1, "pear") # 在索引1处插入 "pear"print(fruits) # 输出:['apple', 'pear', 'banana', 'orange', 'grape', 'mango']
2. 查找元素
nums = [1, 2, 3, 2, 4, 2]print(nums.index(2)) # 输出:1(第一个2的索引)# print(nums.index(5)) # 报错:ValueError,因为5不存在print(nums.count(2)) # 输出:3print(nums.count(5)) # 输出:0
3. 排序与反转
numbers = [3, 1, 4, 1, 5, 9, 2]# 升序排序numbers.sort()print(numbers) # 输出:[1, 1, 2, 3, 4, 5, 9]# 降序排序numbers.sort(reverse=True)print(numbers) # 输出:[9, 5, 4, 3, 2, 1, 1]# 反转(不排序,只颠倒顺序)numbers.reverse()print(numbers) # 输出:[1, 1, 2, 3, 4, 5, 9](又变回升序了)
注意:sort() 和 reverse() 会直接修改原列表,如果想保留原列表,可以先复制一份再操作。
总结
今天我们学习了:
列表是Python中最基础也最强大的数据结构之一,掌握好它能为后续学习(如循环、推导式、数据分析)打下坚实基础。希望这篇笔记能帮助你快速入门!