已知有一个包含10个整数的列表list,创建一个新列表newList,该列表中每个元素为list列表中每个元素的平方,如下所示。
1 list = range(1, 11)
2 newList = []
3 for num in list:
4 newList.append(num ** 2)
5 print(newList)
运行结果如下图所示。

在上例中,通过for循环遍历list中的每一个元素并计算出平方值,然后将平方值添加到列表newList中。
在Python中可以使用更简单的方法实现上述功能,如下所示。
1 list = range(1, 11)
2 newList = [num ** 2 for num in list]
3 print(newList)
运行结果如下图所示。

在上例中,仅使用一行语句就完成上例中三行语句的功能,其中用到的知识就是列表推导,其语法格式如下:
[表达式1 for k in L if 表达式2 ]
该语句与下面的语句等价,具体如下所示:
List = []
for k in L:
if 表达式2:
List.append(表达式1)
其中,List的元素由每一个“表达式1”组成,if语句用于过滤,可以省略。
接下来演示列表推导中含有if语句,如下所示。
1 list = range(1, 11)
2 newList = [num ** 2 for num in list if num > 5]
3 print(newList)
运行结果如下图所示。

在上例中,通过if条件语句过滤list列表中大于5的元素值,然后对该该值进行平方并加入到newList列表中。
网友评论