
上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 运行结果