第二章:Python数据结构与函数
在这一章中,我们将深入探索Python的数据结构和函数编程的基本概念,这是进行任何Python编程的基础。数据结构的理解将帮助我们更有效地组织和存储数据,而函数则是实现代码复用和功能模块化的关键。接下来,我们将逐步学习列表、元组、字典、集合等数据结构,并掌握如何定义和使用函数,最后了解Lambda表达式这一强大的工具。
2.1 列表和元组
在Python中,列表和元组是两种重要的可变序列和不可变序列,它们分别用于存储一组元素。
列表
列表是一个可变的序列,可以随意添加、删除或修改其中的元素。例如:
# 创建一个列表
fruits = ['苹果', '香蕉', '橙子']
print(fruits)
# 添加元素
fruits.append('葡萄')
print(fruits)
# 修改元素
fruits[1] = '草莓'
print(fruits)
# 删除元素
fruits.remove('苹果')
print(fruits)
列表的灵活性使得我们能够处理多种数据存储需求,特别是在需要对数据进行频繁修改时。
元组
元组与列表类似,但它是不可变的。一旦创建,元组中的元素就无法更改。元组适合用于存储那些应该保持不变的数据。例如:
# 创建一个元组
point = (10, 20)
print(point)
# 尝试修改元组中的元素(会出错)
# point[0] = 5 # TypeError: 'tuple' object does not support item assignment
在函数返回多个值时,元组非常有用,因为它能以不可变的方式将数据打包在一起。
2.2 字典和集合
字典和集合是Python中两个非常有用的数据结构,尤其在处理键值对和唯一性数据时。
字典
字典是一个无序的键值对集合,其中每个键都是唯一的。字典适用于需要快速查找或关联的数据。例如:
# 创建字典
student = {
'name': '小明',
'age': 20,
'major': '计算机科学'
}
# 访问字典中的值
print(student['name'])
# 修改字典中的值
student['age'] = 21
# 添加新项
student['grade'] = 'A'
print(student)
字典可以用于各种场景,如存储配置数据、统计频率等。
集合
集合是一个无序的元素集合,且每个元素都是唯一的。集合主要用于去重和集合运算。例如:
# 创建集合
unique_numbers = {1, 2, 3, 2, 1}
print(unique_numbers) # 输出: {1, 2, 3}
# 添加元素
unique_numbers.add(4)
print(unique_numbers)
# 集合运算
set_a = {1, 2, 3}
set_b = {3, 4, 5}
intersection = set_a & set_b # 交集
print(intersection) # 输出: {3}
集合的主要优势在于它的去重功能以及对集合操作(如交集、并集)的良好支持。
2.3 函数定义与使用
在编程中,函数是一个非常重要的概念,用于实现代码的模块化和复用。在Python中,定义函数使用def
关键字。
定义函数
def greet(name):
return f'你好, {name}!'
使用函数
print(greet('小红')) # 输出: 你好, 小红!
函数参数
函数可以接收多个参数,并可以为参数指定默认值。例如:
def add(a, b=5):
return a + b
print(add(3)) # 输出: 8
print(add(3, 2)) # 输出: 5
作用域
函数的作用域决定了变量的可用性。局部变量只能在函数内部使用,而全局变量则在整个脚本中可用。例如:
x = 10 # 全局变量
def my_function():
y = 5 # 局部变量
print(x + y)
my_function() # 输出: 15
# print(y) # NameError: name 'y' is not defined
通过掌握函数的定义与使用,您可以编写更为清晰和可维护的代码。
2.4 Lambda表达式
Lambda表达式提供了一种简化定义小型匿名函数的方式。在一些需要简单函数作为参数的场景中,Lambda表达式非常有用。
定义Lambda表达式
# 定义一个加法的Lambda函数
add = lambda x, y: x + y
print(add(2, 3)) # 输出: 5
使用Lambda表达式
Lambda表达式常与高阶函数一起使用,例如map()
, filter()
, sorted()
等。以下是使用map()
示例:
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 输出: [1, 4, 9, 16]
Lambda表达式让函数式编程变得更加简洁,使得代码在表达意图时更为清晰。
通过理解和实践这些数据结构和函数概念,您将为更复杂的编程任务打下坚实的基础。在下一章中,我们将进入面向对象编程的世界,了解类和对象的基本概念。期待与您再见!