一、列表推导式
列表推导式是一种简洁的语法,用于从一个已有的可迭代对象(例如列表、元组、集合或者其他可迭代对象)创建一个新的列表。列表推导式通常是在一行内完成的,并且由一对方括号 [ ] 包裹(使用时好像也可以不用[])。
列表推导式的一般形式为:
[expression for item in iterable if condition]
其中:
- expression 是一个表达式,用来对 item 进行操作并生成新的元素。
- item 是可迭代对象中的每个元素。
- iterable 是可迭代对象,例如列表、元组、集合等。
- if condition 是一个可选的条件,用来过滤元素。
例如,下面是一个简单的列表推导式,用于生成一个列表,其中包含 1 到 5 的平方:
squares = [x**2 for x in range(1, 6)]
这等效于以下的常规循环:
squares = []
for x in range(1, 6):
squares.append(x**2)
二、条件表达式
条件表达式,也称为三元运算符,是一种在一行代码中根据条件选择不同值的方式。它的一般形式如下:
value_if_true if condition else value_if_false
其中:
- condition 是一个表达式,它的结果会被解释为布尔值 True 或 False。
- value_if_true 是在条件为 True 时返回的值。
- value_if_false 是在条件为 False 时返回的值。
- 这种表达式的作用是根据条件的真假选择不同的值。如果条件为真,则返回 value_if_true;如果条件为假,则返回 value_if_false。
例如,考虑以下示例:
x = 10
result = 0 if x % 2 == 0 else 1
在这个例子中,如果 x 是偶数,则 result 将会被赋值为 0;否则,将会被赋值为 1。