对于数据科学,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元素。列表推导式是完成这些任务的完美工具。
- 还没有人评论,欢迎说说您的想法!