Python 常见的推导式包括列表推导式、元组推导式、字典推导式、集合推导式,在推导的格式方面它们是类似的
只是返回的元素类型不同
1、 列表推导式
常用格式:
[expression for item in iterable]#基本格式
[expression for item1 in iterable1 for item2 in iterable2]#双重循环
[expression for item in iterable if item……]#先if 判断再 expression 计算
[expression if condition else expression2 for item in iterable]#依据condition 决定expression或者 expression2 去组成列表元素
格式说明:
expression、expression2:表达式的值或者函数返回值
item、item1、item2:迭代的元素
iterable、iterable1、iterable2:可迭代对象
从程序可读方面不建议使用多重循环
实例:
显示:
2、 元组推导式
元组推导式与列表推导式类似,只是用tuple()方法转化为tuple 类型
实例我就写基本格式与if 格式 其他的参照列表推导式也是很容易写的
实例:
tup = tuple(i for i in range(12))
print(tup)
tup2 = tuple(str(i)+"是偶数" if i % 2==0 else str(i)+"是奇数" for i in range(12) if i > 2 and i<=7)
print(tup2)
显示:
3、字典推导式
字典推导式与列表推导式同样类似,只是用{}符号替换[]、用KeyExpression:ValueExpression 替换expression
实例我就写基本格式与if 格式 其他的参照列表推导式也是很容易写的
实例:
print("======字典推导式======")
dic = {v:k for k,v in {"今天":"周五","明天":"周六"}.items()}
print(dic)
dicIF = {v:k for k,v in {"今天":"周五","明天":"周六"}.items() if k=="今天"}
print(dicIF)
dicIF2= {k if k=="今天" else "明天就是":v for k,v in {"今天":"周五","明天":"周六"}.items()}
print(dicIF2)
显示:
4、 集合推导式
集合推导式与列表推导式也是类似的,只是用{}符号替换[] 但是集合可以自动去重的。
实例我就写基本格式与if 格式 其他的参照列表推导式也是很容易写的。
实例:
s = {n**2 for n in [1, 1, 16,16]}
print(s)
s2 = {n**2 for n in [1, 1, 16,16] if n>2}
print(s2)
显示: