推导式
- 推导式即从一个序列生成另一个序列
- 语法:[ <表达式> for <元素> in <序列> if <条件> ]
- 如果有else条件,则语法为 [ <表达式> if <条件> else <值> for <元素> in <序列> ]
列表推导式
L1=[1,2,3,6,8,9,10]
L2=[x for x in L1 if x%2==0] #找出对L1列表中的偶数
L3=[x**2 for x in L1] #求L1列表中元素的平方
集合推导式
- 找出S1集合中的在字符串’abcefss’中存在的值,并且输出5次
S1={'a','b','ef','as','c'}
S2={x*5 for x in S1 if x in 'abcefss'} #输出结果:{'efefefefef', 'ccccc', 'bbbbb', 'aaaaa'}
- 结合else语句,对于不存在’abcefss’中的值输出no,但只会输出一次
s3={x*5 if x in 'abcefss' else 'no' for x in S1} #输出结果:{'bbbbb', 'aaaaa', 'ccccc', 'no', 'efefefefef'}
字典推导式
- 生成字典
dict1={x:y for x,y in zip(["a","b"],(2,3))} #输出结果: {'a': 2, 'b': 3}
- 实现键值调换
dict2={y:x for x,y in dict1.items()} #输出结果:{2: 'a', 3: 'b'}