目录
2. 字典推导式(Dictionary Comprehensions)
4. 生成器表达式(Generator Expressions)
5. 多重赋值与解包(Multiple Assignment and Unpacking)
9. 函数参数解包(Function Argument Unpacking)
10. Lambda函数(Lambda Functions)
13. 赋值表达式(Walrus Operator)[Python 3.8+]
Python是一种广受欢迎的高级编程语言,它以其简洁明了的语法和强大的功能而闻名。在这篇博客中,我们将探索Python中一些比较特殊且有用的语法特性,这些特性不仅使得Python与众不同,还大大提高了代码的可读性和编写效率。
?
用于创建列表的简洁语法,非常适合从其他列表或可迭代对象生成新列表。
squares = [x**2 for x in range(10)]
类似列表推导式,用于创建字典。
squared_dict = {x: x**2 for x in range(10)}
用于创建集合的语法。
squared_set = {x**2 for x in [1, 1, 2]}
类似于列表推导式,但它不会一次性创建整个列表,而是返回一个生成器对象。
squares_gen = (x**2 for x in range(10))
同时为多个变量赋值或从序列中提取值。
a, b, c = 1, 2, 3 x, *y, z = [1, 2, 3, 4, 5] # x=1, y=[2, 3, 4], z=5
同时进行多个比较。
1 < x < 10
在for
和while
循环后以及try-except
块后使用else
子句。
for item in container:
if search(item):
break
else: # 如果没有break发生 not_found()
try:
dangerous_call()
except Exception:
handle_exception()
else: # 如果没有异常发生
no_exception()
自动管理资源,如文件操作。
with open('file.txt', 'r') as file:
contents = file.read()
使用*
和**
操作符传递可迭代对象和字典作为函数参数。
def func(a, b, c):
print(a, b, c)
args = [1, 2, 3]
func(*args)
kwargs = {'a': 1, 'b': 2, 'c': 3}
func(**kwargs)
创建匿名函数。
add = lambda x, y: x + y
从序列类型(如列表、字符串)中获取子序列。
numbers = [1, 2, 3, 4, 5] first_three = numbers[:3] # [1, 2, 3]
修改或增强函数和方法的行为。
@decorator
def func():
pass
使用 :=
运算符在表达式内部进行赋值。注意:这里需要python版本3.8+哦!!
if (n := len(a)) > 10:
print(f"List is too long ({n} elements)")
这些特殊的语法使得Python代码更加简洁、易于阅读和编写。熟练掌握这些语法可以显著提高编程效率。