Python推导式又叫解析式,是可以从一个数据序列构建另一个新的数据序列的结构体。
共有三种推导式:列表推导式、集合推导式和字典推导式。
基本语法:
变量名 = [表达式 for 变量1 in 列表1 for 变量2 in 列表2]
上面相当于for循环嵌套
list1 = [i for i in range(10)]
#一个简单的列表:[0,1,2,3,4,5,6,7,8,9]
list2 = [(i, j) for i in range(1,3) for j in range(0,3)]
#列表嵌套元组:[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
变量名 = [表达式 for 变量 in 列表 if 条件]
list3 = [x for x in range(10) if x % 2 == 0]
#[0,2,4,6,8]
基本语法:
变量 = {key : value for key, value in 序列}
使用字典推导式可以快速合并列表为字典或提取字典中目标数据
dict1 = {i : i*5 for i in range(1,3)}
#一个简单的字典{1:5,2:10,3:15}
dict2 = {list1[i]:list2[i] for i in range(len(list1))}
#合并两个等长列表为一个字典
counts = {'a':268,'b':199,'c':0}
#提取value值大于200的数据
dict3 = {x : y for x, y in counts.items() if y > 200}
和列表推导式语法基本一致,唯一区别在于用{ }代替[ ]
最大的功能就是去重