列表推导

已知有一个包含10个整数的列表list,创建一个新列表newList,该列表中每个元素为list列表中每个元素的平方,如下所示。

 1  list = range(1, 11)
 2  newList = []
 3  for num in list:
 4      newList.append(num ** 2)
 5  print(newList)

运行结果如下图所示。


5120355-25a6557fb1174da3.png
运行结果

在上例中,通过for循环遍历list中的每一个元素并计算出平方值,然后将平方值添加到列表newList中。
在Python中可以使用更简单的方法实现上述功能,如下所示。

 1  list = range(1, 11)
 2  newList = [num ** 2 for num in list]
 3  print(newList)

运行结果如下图所示。


5120355-25a6557fb1174da3.png
运行结果

在上例中,仅使用一行语句就完成上例中三行语句的功能,其中用到的知识就是列表推导,其语法格式如下:

[表达式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)

运行结果如下图所示。


5120355-bc9ef4f737f7678e.png
运行结果

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

猜你喜欢

转载自blog.csdn.net/weixin_34122548/article/details/87677542