当前位置: 首页 > 科技观察

你必须知道的8个Python列表技巧

时间:2023-03-13 12:40:23 科技观察

列表(List)是Python使用过程中最常遇到的数据结构,也是最强大的数据结构之一。Python列表的用途非常广泛,并且包含许多隐藏的技巧。让我们在下面探讨一些常用的列表技巧。一、列表元素的过滤1、filter()的使用filter()函数接受2个参数:1个函数对象和1个可迭代对象。接下来,我们定义一个函数,然后过滤一个列表。首先我们创建一个列表,并移除小于等于3的元素:图1回顾一下发生了什么:我们定义了列表original_list,然后我们定义了一个函数filter_three,它接受一个数字参数number,当传入的参数值是大于3则返回True,否则返回False。我们定义了过滤器对象filtered,其中filter()接受的第一个参数是一个函数对象,第二个参数是一个列表对象。最后我们将filter对象转化为list,最后得到original_list经过filter_three过滤后剩下的元素。1.2使用列表推导类似的,我们也可以使用列表推导来过滤列表元素,作为一种优雅的生成和修改列表的方式,列表推导想必大家都不陌生,下面是使用列表推导完成同样任务的过程:图2二、修改列表1.map()的使用Python中内置的map()函数允许我们对可迭代对象中的每个元素应用一个函数。比如我们要获取list对象中每个元素的平方,可以使用map()函数,就像下面的例子:图3类似于filter()的工作过程,我们来看看发生了什么什么:首先我们定义了列表original_list,以及接受数字参数并返回其平方值的函数square()。然后我们定义了地图对象方块,类似于filter()。map()接受的第一个参数是一个函数对象。第二个参数是列表对象。最后,我们列出地图对象方块并得到想要的结果。2.使用列表理解。我们也可以使用列表理解来完成相同的任务:图43.使用zip()组合列表在某些情况下,我们需要将两个或多个列表组合在一起。对于这样的需求,使用zip()是非常方便的。zip()函数接收多个列表作为参数,然后在每个位置获取元素的一一对应组合,就像下面的例子:图5四、反转列表Python中的列表是一个有序的数据structure,因此,列表中元素的顺序非常重要。有时我们需要翻转列表中所有元素的顺序,这可以通过Python中带有::-1的切片操作快速实现:图65.检查列表中元素的存在在某些情况下,我们希望检查列表中是否存在元素。在这种情况下,我们可以使用Python中的in运算符。例如,我们有一个列表,记录了所有获胜团队的名称。当我们要检查一个队名是否获胜时,可以像下面的例子:图76.查找列表中出现频率最高的元素在某些情况下,我们希望找到列表中出现频率最高的元素,比如一个记录了几次抛硬币结果的列表,要找出哪个结果出现次数最多,可以参考下面的例子:图87。Flattennestedlists在某些情况下,我们会遇到一些嵌套列表。它的每个元素都是一个不同的列表。在这种情况下,我们可以使用列表推导来展平这个嵌套列表,如下图2层嵌套的例子:图9补充补充:原作者这里只考虑了两层嵌套列表,如果有更多层层嵌套,层数越多,for循环越写越麻烦。其实还有更好的办法。我们可以使用pipinstalldm-tree来安装树这个专门用于展平嵌套结构的库可以展平任何级别的嵌套列表。使用示例如下:图108.检查唯一性如果要检查列表中的值是否都是唯一值,可以利用Python中set数据结构的特性,比如下面的例子:图11【责任编辑:赵宁宁电话:(010)68476606】