python的几种数据类型的花样玩法(二)

列表推导式:

Python允许你使用列表推导式(list comprehension)来创建列表。列表推导式是一种简洁、高效的方式来创建列表,它可以在一行代码中完成循环和条件语句的功能。

例如,你可以使用列表推导式来创建一个包含1到10的平方数的列表:

python
squares = [x**2 for x in range(1, 11)]
print(squares)

字典推导式:

与列表推导式类似,Python也允许使用字典推导式来创建字典。

例如,你可以使用字典推导式来创建一个字典,其中每个键都是1到10的数字,值是该数字的平方:

python
squares = {x: x**2 for x in range(1, 11)}
print(squares)

生成器和迭代器的区别:

生成器是惰性计算的,只有在需要时才会生成新的值。这意味着它们一次只产生一个值,并且只有在请求时才产生下一个值。因此,它们可以节省内存并处理大数据集。
迭代器则是迭代对象,可以通过内置函数iter()从一个容器类型(如列表、元组、字典等)中获取。它们也有一个next()方法用于获取下一个值。当迭代结束时,next()会引发StopIteration异常。

装饰器:

Python的装饰器允许你在不改变函数或方法代码的情况下增加其功能。装饰器是一个接受一个函数作为参数的函数,并返回一个新的函数。它可以在函数调用前后增加额外的逻辑。
装饰器通常用于添加日志、缓存、权限校验等额外功能。例如,你可以创建一个装饰器来检查函数是否在给定时间内完成:
python
from time import time

def check_time(func):
    def wrapper(*args, **kwargs):
        start_time = time()
        result = func(*args, **kwargs)
        end_time = time()
        if end_time - start_time > 1:  # 如果函数运行时间超过1秒
            print(f"Warning: {func.__name__} took {end_time - start_time} seconds to run.")
        return result
    return wrapper

上下文管理器:

Python的上下文管理器允许你创建特定的代码块,在这些代码块中可以进行特定的设置和清理工作。例如,使用with关键字可以自动管理资源(如文件打开和关闭)。当你离开with代码块时,上下文管理器会自动清理资源,即使在代码块中发生了异常。例如:
python
with open("file.txt", "r") as file:
    content = file.read()  # 在这个代码块中,文件被自动打开和关闭

猜你喜欢

转载自blog.csdn.net/babyai996/article/details/132754317
今日推荐