对于数据科学,Python通常被广泛地用于进行数据的处理和转换,它提供了强大的数据结构处理的函数,使数据处理更加灵活。

泰迪云课堂分享:2个 Python 推导式开发技巧 :

1、使用列表推导式复制一个列表

 

有时需要创建现有列表的副本。最简单的答案是.copy(),它允许您将一个列表的内容复制到另一个(新)列表。

 

例如,一个由整数组成的列表original_list。

 

original_list = [10,11,20,22,30,34]

 

可以简单地使用.copy()方法复制此列表。

 

duplicated_list = original_list.copy()

 

列表推导式可以得到完全相同的输出。复制列表是理解列表推导式的最佳案例。

 

看看下面这段代码。

 

duplicated_list = [item for item in original_list]

 

这里并不是说复制列表使用列表推导式更好,而是说对于介绍列表推导式的工作方式,这个案例是最好的。

 

接下来,让我们看看对列表的每个元素执行数学运算时,列表推导式如何使工作变得简单。

 

2、列表中的元素相乘

 

最简单或直接的乘法方法是使用乘法运算符,即*

 

例如,想用一个标量(即数字5)乘以列表中的每一项。这里肯定不能使用original_list*5,因为它将创建列表的5个副本。

 

在这个场景中,最好的答案是列表推导式,如下所示。

 

original_list = [10,11,20,22,30,34] multiplied_list = [item*5 for item in original_list] # Output [50, 55, 100, 110, 150, 170]

 

这里的操作并不局限乘以一个数字。可以对原始列表的每个元素执行复杂的操作。

 

例如,假设想计算每一项的平方根的立方,可以在一行中解决它。

 

multiplied_list = [math.sqrt(item)**3 for item in original_list] # Output [31.6227766016838,  36.4828726939094,  89.4427190999916,  103.18914671611546,  164.31676725154983,  198.25236442474025]

 

用于计算数字平方根的函数sqrt属于库math,因此在本例中需要在使用它之前导入它。

 

与上面所示的内置函数类似,还可以在列表的每个元素上使用用户定义的函数。

 

例如如下所示的简单函数。

 

 def simple_function(item):
    item1 = item*10
    item2 = item*11
    return math.sqrt(item1**2 + item2**2)

 

可以对列表的每一项应用这个用户定义的函数。

 

 multiplied_list = [simple_function(item) for item in original_list]

 # Output
 [148.66068747318505,
  163.52675622050356,
  297.3213749463701,
  327.0535124410071,
  445.9820624195552,
  505.4463374088292]

 

列表推导式在实际场景中甚至更有用。通常在分析任务中需要从列表中删除某种类型的元素,例如消0护着nan元素。列表推导式是完成这些任务的完美工具。