Python 迷惑语法扫盲
列表推导式、*args/kwargs、lambda、生成器、装饰器、切片、深浅拷贝等 Python 核心语法详解。
DAY01b — Python 迷惑语法扫盲
相关笔记:[[DAY01-成长计划启动]] | [[DAY01c-策略模式]] | [[DAY01d-HTTP拦截与CookieSession]] 相关主题:[[Python基础]]
今日内容
列表推导式
[x * 2 for x in range(10) if x % 2 == 0]
阅读顺序:从右往左 — for x in range(10) → if x % 2 == 0 → x * 2
*args / **kwargs
def func(*args, **kwargs):
pass # args = 元组, kwargs = 字典
lambda
add = lambda x, y: x + y
enumerate / zip
for i, v in enumerate(list):
for a, b in zip(list1, list2):
yield 生成器
def gen():
for i in range(10):
yield i # 惰性求值,一次出一个
with 上下文管理器
with open("file.txt") as f:
data = f.read() # 自动关闭
装饰器
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
print(f"耗时: {time.time() - start}")
return result
return wrapper
类型注解
def add(a: int, b: int) -> int:
return a + b
[::] 切片
s[start:stop:step]
s[::-1] # 反转
s[:5] # 前5个
s[-3:] # 后3个
深浅拷贝
b = a # 引用(贴标签)
b = a.copy() # 浅拷贝(外壳新,里面同)
b = copy.deepcopy(a) # 深拷贝(全部独立)
代码文件
Day01.code/python_essentials.pyDay01.code/list_comprehension.py