Python 【列表】:掌握这 10 个妙招,轻松玩转列表
Python中的列表(list)是一种非常灵活且常用的数据结构,适用于多种场景。以下是列表的一些经典应用及示例:
1. 存储和操作
列表常用于存储一组数据,并对其进行增删改查等操作。
# 创建一个列表
fruits = ['apple', 'banana', 'cherry']
# 添加元素
fruits.append('orange')
# 删除元素
fruits.remove('banana')
# 修改元素
fruits[0] = 'grape'
# 查找元素
if 'cherry' in fruits:
print("Cherry is in the list")
print(fruits) # 输出: ['grape', 'cherry', 'orange']
2. 遍历列表
列表可以通过循环进行遍历,处理每个元素。
numbers = [1, 2, 3, 4, 5]
# 遍历列表
for num in numbers:
print(num * 2) # 输出每个元素的两倍
3. 列表推导式
列表推导式是一种简洁的创建列表的方式。
# 创建一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
4. 排序和反转
列表可以方便地进行排序和反转操作。
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# 排序
numbers.sort()
print(numbers) # 输出: [1, 1, 2, 3, 4, 5, 5, 6, 9]
# 反转
numbers.reverse()
print(numbers) # 输出: [9, 6, 5, 5, 4, 3, 2, 1, 1]
5. 切片操作
列表支持切片操作,可以方便地获取子列表。
letters = ['a', 'b', 'c', 'd', 'e', 'f']
# 获取前三个元素
first_three = letters[:3]
print(first_three) # 输出: ['a', 'b', 'c']
# 获取最后两个元素
last_two = letters[-2:]
print(last_two) # 输出: ['e', 'f']
6. 多维列表(嵌套列表)
列表可以嵌套,形成多维列表,常用于表示矩阵或表格数据。
# 创建一个2x3的矩阵
matrix = [
[1, 2, 3],
[4, 5, 6]
]
# 访问元素
print(matrix[0][1]) # 输出: 2
# 遍历多维列表
for row in matrix:
for element in row:
print(element, end=' ')
print()
7. 列表作为栈或队列
列表可以用作栈(后进先出)或队列(先进先出)的数据结构。
# 栈的实现
stack = []
stack.append(1) # 入栈
stack.append(2)
stack.append(3)
print(stack.pop()) # 出栈,输出: 3
# 队列的实现
from collections import deque
queue = deque()
queue.append(1) # 入队
queue.append(2)
queue.append(3)
print(queue.popleft()) # 出队,输出: 1
8. 合并与拆分
列表可以通过多种方式进行合并和拆分。
# 合并列表
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined) # 输出: [1, 2, 3, 4, 5, 6]
# 拆分列表
first_half = combined[:3]
second_half = combined[3:]
print(first_half) # 输出: [1, 2, 3]
print(second_half) # 输出: [4, 5, 6]
9. 列表的过滤
可以使用filter()
函数或列表推导式对列表进行过滤。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 过滤出偶数
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers) # 输出: [2, 4, 6, 8]
10. 列表的映射
可以使用map()
函数或列表推导式对列表中的每个元素进行映射操作。
numbers = [1, 2, 3, 4, 5]
# 将每个元素平方
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # 输出: [1, 4, 9, 16, 25]
小结
Python的列表功能强大且灵活,适用于多种场景,如数据存储、遍历、排序、过滤、映射等。掌握列表的使用可以极大地提高编程效率。