推导式
包含列表,字典,集合,元组四种推导式。
列表
格式
[ 表达式 for 变量 in 列表]
[ [表达式 for 变量 in 列表 if 条件]
描述
- 表达式:生成元素的表达式,可以是函数
- 迭代语句:遍历或迭代某个某个集合型数据的元素并送入列表 如 for e in elems 将elems中的元素 e传入表达式
- 条件语句:符合条件的才传入list
举例
ns = [1, 2, 3, 4, 5, 6, 7, 8, 9]
nss = [n for n in ns]
nsss = [n for n in ns if n % 2 == 0]
字典
格式
{键表达式 : 值表达式 for 值 in 可迭代数据 if 条件}
描述
键表达式:生成键的表达式
值表达式:生成值的表达式
条件语句:符合条件的才放入字典
举例
def getKey(n):
return 'key' + str(n)
n = range(1, 9)
dict = { getKey(i): i + 1 for i in n if i < 4 }
集合
格式
{元素表达式 for 值 in 可迭代的数据 if 条件}
描述
元素表达式:生成元素的表达式
值:可迭代数据中的值
条件语句:符合条件的才放入集合
举例
def getV(n):
return n + 3
ns = range(0, 10)
{ getV(n) for n in ns if n > 6 }
元组
格式
{值表达式 for 值 in 可迭代的数据 if 条件}
描述
值表达式 :生成值的表达式
值:可迭代数据中的值
条件语句:符合条件的才放入元组
举例
ns = range(0, 9)
tup = (n for n in ns if n % 3 == 0) # 返回一个元素生成器对象
t = tuple(tup) # 这里才转换成了元组