接着上一期,继续分享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

分类: python 标签: Python技巧

评论

暂无评论数据

暂无评论数据

目录