Python推导式

63 阅读1分钟

推导式

推导式是一种可以更加方便生产某种数据的方式;比如生产一些具有一定要求的列表元组字典等数据集

列表推导式

[ 表达式 for value in 序列 if 过滤条件 ]

所有从这个for循环出来的数据;首先会经过if条件过滤;执行表达式计算;重新返回成一个新的列表

过滤条件按照需求也可以没有

>>> mylist = [1,2,3,4,5]
>>> newlist = [ var + 1 for var in mylist ]
>>> newlist
[2, 3, 4, 5, 6]
>>> mylist = [1,2,3,4,5]
>>> newlist = [ var * var for var in mylist if var != 3]
>>> newlist
[1, 4, 16, 25]

字典推导式

字典推导式:与列表推导式类似,只不过需要两个值存在来维护字典的键值对形式

{key:value for key in 序列 if 过滤条件}
>>> mylist = ['a','b','c']
>>> new_dict = {mylist.index(var):var for var in mylist}
>>> new_dict
{0: 'a', 1: 'b', 2: 'c'}

集合推导式

集合推导式跟列表推导式非常相似,唯一语法区别在于用 { } 代替 [ ]

{ 表达式 for value in 序列 if 过滤条件 } 
>>> mylist
['a', 'b', 'c']
>>> myset = { var.upper() for var in mylist}
>>> myset
{'C', 'B', 'A'}