推导式 comprehensions(又称解析式):是 Python 中很强大的、很受欢迎的特性,具有语言简洁,速度快等优点。推导式包括:
- 列表推导式
- 字典推导式
- 集合推导式
1.1 列表推导式
语法:
[表达式 for 变量 in 列表]
代表从列表中取出每个元素,然后在按照表达式运算,然后放在新的列表中
[表达式 for 变量 in 列表 if 条件]
代表从列表中取出满足条件的元素,然后在按照表达式运算,然后放在新的列表中
例1: 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
print([name.upper() for name in names if len(name)>3])
1.2 字典推导式
语法 { key: value for 变量 in 数据集 if 条件}
列如:
data ={n : randint(10,100) for n in range(10)}
print(data)
比如:过滤value 大于90
data2 = { k:v for k,v in data.items() if v>=90}
print(data2)
1.3 集合推导式
语法 { 表达式 for value in 数据集 if 条件 }
列如:
用集合推导建字符串长度的集合
strings = ['a','is','with','if','file','exception']
{len(s) for s in strings} #有长度相同的会只留一个,这在实际上也非常有用