Python 笔记 | 列表 list
在 Python 中,列表(list)是一种重要的数据结构,用于存储有序的元素集合。列表中的元素可以是任何类型,包括整数、浮点数、字符串、甚至是其他列表(即嵌套列表)。列表是可变的,意味着你可以添加、删除或修改其中的元素。
创建列表
你可以使用方括号 [] 来创建一个列表,元素之间用逗号 , 分隔。
| Python | 
|---|
|  | # 创建一个包含整数的列表
numbers = [1, 2, 3, 4, 5]
# 创建一个包含多种类型元素的列表
mixed_list = [1, 'apple', 3.14, True, [1, 2, 3]]
 | 
访问列表元素
你可以通过索引来访问列表中的元素。索引从 0 开始。
| Python | 
|---|
|  | # 访问列表中的第一个元素
print(numbers[0])  # 输出:1
# 访问列表中的最后一个元素(使用-1作为索引)
print(numbers[-1])  # 输出:5
 | 
修改列表元素
你可以通过索引来修改列表中的元素。
| Python | 
|---|
|  | # 修改列表中的第一个元素为0
numbers[0] = 0
print(numbers)  # 输出:[0, 2, 3, 4, 5]
 | 
添加和删除元素
- 添加元素:使用 append()在列表末尾添加元素,或使用insert()在指定索引处插入元素。
- 删除元素:使用 remove()根据值删除元素,或使用pop()根据索引删除元素(并返回该元素的值),也可以使用del语句来删除元素。
| Python | 
|---|
|  | # 添加元素到列表末尾
numbers.append(6)
print(numbers)  # 输出:[0, 2, 3, 4, 5, 6]
# 在指定索引处插入元素
numbers.insert(1, 1.5)
print(numbers)  # 输出:[0, 1.5, 2, 3, 4, 5, 6]
# 删除元素
numbers.remove(2)
print(numbers)  # 输出:[0, 1.5, 3, 4, 5, 6](注意,remove会删除第一个匹配的元素)
# 删除并返回指定索引的元素
deleted_element = numbers.pop(1)
print(deleted_element)  # 输出:1.5
print(numbers)  # 输出:[0, 3, 4, 5, 6]
# 使用del语句删除元素
del numbers[0]
print(numbers)  # 输出:[3, 4, 5, 6]
 | 
列表切片
列表切片允许你访问列表的一个子序列。
| Python | 
|---|
|  | # 访问列表中的第二个到第四个元素(不包括第五个)
print(numbers[1:4])  # 输出:[3, 4, 5]
# 反转列表(步长为-1)
print(numbers[::-1])  # 输出:[6, 5, 4, 3]
 | 
列表方法
Python的列表类型提供了许多有用的方法,如 sort() 用于排序列表, reverse() 用于反转列表, count() 用于计算某个元素出现的次数,以及 index() 用于查找某个元素第一次出现的索引等。
| Python | 
|---|
|  | # 对列表进行排序
numbers.sort()
print(numbers)  # 输出:[3, 4, 5, 6]
# 反转列表
numbers.reverse()
print(numbers)  # 输出:[6, 5, 4, 3]
# 计算元素出现的次数
print(numbers.count(4))  # 输出:1
# 查找元素第一次出现的索引
print(numbers.index(5))  # 输出:1
 | 
列表推导式
列表推导式是 Python 中创建列表的一种简洁方式。
| Python | 
|---|
|  | # 创建一个包含 0 到 9 的平方的列表
squares = [x**2 for x in range(10)]
print(squares)  # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
 | 
示例
假设我们有一个函数 square,它接收一个数字作为输入并返回其平方:
| Python | 
|---|
|  | def square(x):
    return x ** 2
 | 
现在,如果我们有一个列表 lst,并且我们想要创建一个新的列表,其中包含 lst 中每个元素的平方,我们可以这样做:
| Python | 
|---|
|  | def square_all(lst):
    return [square(x) for x in lst]
# 使用示例
numbers = [1, 2, 3, 4, 5]
squared_numbers = square_all(numbers)
print(squared_numbers)  # 输出: [1, 4, 9, 16, 25]
 | 
在示例中 return [square(x) for x in lst] 这个表达式做了以下几件事情:
- 迭代:for x in lst遍历列表lst中的每一个元素,并将其值赋给变量x。
- 函数调用:对于 lst中的每一个元素x,都调用函数square,并将x作为参数传递给它。
- 列表生成:[ ... for x in lst]的结构用于创建一个新的列表。这个新列表的每一个元素都是square(x)的返回值。
- 返回:return语句用于将新生成的列表作为函数的返回值。
最后,当我们调用 square_all(numbers) 时,我们得到了一个包含每个数字平方的新列表。
综合实践
| Python | 
|---|
|  | # 列表 list(可变类型)  
shopping_list = []  
# 列表的加入 删除 更改  
shopping_list.append("键盘")  
shopping_list.append("键帽")  
shopping_list.remove("键帽")  
shopping_list.append("音响")  
shopping_list.append("电竞椅")  
shopping_list[1] = "硬盘"  
print(shopping_list)  
# 一些常用函数  
item_price = [179, 80, 850]  
min_item_price = min(item_price)    # min  
max_item_price = max(item_price)    # max  
sorted_item_price = sorted(item_price)  # 返回排序后的列表,不改变原列表  
print(min_item_price)  
print(max_item_price)  
print(sorted_item_price)  
# 用列表推导式生成列表  
# [expression for item in iterable]  
# 其中,expression 是对每个 item 进行操作的表达式,item 是从 iterable 中提取的元素。  
decreasing_sequence = [i for i in range(10, 0, -1)]  
print(decreasing_sequence)  
decreasing_sequence = [i**2 for i in range(10, 0, -1)]  # 对 i 进行平方  
print(decreasing_sequence)
 |