Python机器学习原理与算法实现
上QQ阅读APP看书,第一时间看更新

1.6.3 列表推导式

列表推导式是快速生成列表的方法,包括生成指定范围的数值列表、根据列表生成指定需求的列表、从列表中选择符合条件的元素组成新的列表等。

(1)生成指定范围的数值列表的语法格式为:

     list=[expression for var in range]

其中,list为列表名,expression为表达式,var为循环变量,range为调用range( )函数生成的range对象。

(2)根据列表生成指定需求的列表的语法格式为:

     listnew=[expression for var in list]

其中,listnew为列表名,用于新生成的指定需求的列表,expression为表达式,var为循环变量,list为原列表名。

(3)从列表中选择符合条件的元素组成新的列表的语法格式为:

     listnew=[expression for var in list if condition]

相对于“根据列表生成指定需求的列表”,“从列表中选择符合条件的元素组成新的列表”增加了if condition参数,condition即为需要满足的条件。

示例如下,在Spyder代码编辑区内输入以下代码并逐行运行:

     list=[x for x in range(4)]        # 生成列表list,元素为range(4)中的元素
     print(list)      # 查看list中的元素
     listnew=[x*2 for x in list] # 生成列表listnew,元素为list中的各个元素乘以2
     print(listnew) # 查看listnew中的元素
     listnew1=[x*2 for x in list if x>=2]# 生成列表listnew1,元素为针对list的大于或等于2的元素乘以2
     print(listnew1)       # 查看listnew1中的元素

可在IPython控制台看到如图1.47所示的运行结果。

图1.47 运行结果