Python的实用技巧(三)
接着上一期,继续分享Python编程实用技巧。
迭代模块
itertools模块提供了一组函数来处理迭代器。该模块中的函数包括chain、product和permutations。
import itertools
numbers = [1, 2, 3]
result = list(itertools.permutations(numbers))
# 输出所有排列组合
# [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
生成器
生成器是一种可迭代的类型,它可以即时生成值,而不是将它们存储在内存中。它是使用yield关键字定义的,用于创建自定义迭代器。
# 使用yield关键字创建生成器
def fibonacci_series(n):
a, b = 0, 1
for i in range(n):
yield a
a, b = b, a + b
# 输出迭代器中的值
for number in fibonacci_series(10):
print(number)
# 0
# 1
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34
装饰器
装饰器是一种修改函数或类行为的方法。使用@符号进行定义,可用于向函数添加功能,例如日志记录、计时或身份验证。
def log_function(func):
def wrapper(*args, **kwargs):
print(f'Running {func.__name__}')
result = func(*args, **kwargs)
print(f'{func.__name__} returned {result}')
return result
return wrapper
@log_function
def add(x, y):
return x + y
print(add(5,7))
# 运行add函数,返回值为12
本文系作者 @shilianlvke 原创发布在亦秋先生博客站点。未经许可,禁止转载。
暂无评论数据