Python程序:移除数组/列表中所有指定元素


数组是由存储在连续内存位置的同类型元素组成的集合。Python本身并不支持内置数组。如果您需要使用数组,则需要导入“array”模块或使用numpy库中的数组。

在Python中,我们可以使用列表代替数组。但是,我们无法限制列表的元素必须是相同的数据类型。

给定的任务是从数组/列表中移除所有指定元素的出现,即移除包括重复元素在内的指定元素。让我们通过一个输入输出场景来了解这是如何工作的。

输入输出场景

考虑一个包含一个或多个重复元素(重复元素)的列表。

my_list = [ 1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10 ].

现在,假设我们需要移除元素10。我们可以清楚地看到元素10在列表中存在,并且重复了5次。移除所有出现后,生成的列表将如下所示:

my_list = [ 1, 20, 21, 16, 18, 22, 8 ].

从Python列表中移除元素的方法有很多种。让我们逐一讨论它们。

使用remove()方法

Python中的remove()方法接受单个值作为参数,该值代表列表的元素,并将其从当前列表中移除。为了使用此方法移除所有出现,我们需要将所需元素与列表中的所有其他元素进行比较,并且每当发生匹配时,都需要调用remove()方法。

示例

在这个例子中,我们将创建一个元素列表,并使用remove()方法移除所有值为10的元素。

def removing_elements(my_list, element):
   element_count = my_list.count(element)
   for i in range(element_count):
      my_list.remove(element)
   return my_list
if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)
   print("The list after performing the removal operation is: ")
   print(result)

输出

上述程序的输出如下:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

使用列表推导式

“列表推导式”技术由冗长的单行语句组成,可以完成整个任务。使用它可以构造一个新的列表,只要满足给定的基本条件,就可以存储其余元素。

在这里,我们搜索所需的元素,找到后,我们构造另一个列表,使得匹配的元素被排除,即除了匹配的元素外,所有其他元素都将存储在新构造的列表中,该列表最终被视为结果列表。

示例

让我们看一个例子:

def removing_elements(my_list, element):
   result = [i for i in my_list if i != element]
   return result

if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)
   print("The list after performing the removal operation is: ")
   print(result) 

输出

上述程序的输出如下:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

使用“filter()”方法

filter()方法接受一个函数和一个可迭代对象作为参数,并根据函数描述的条件过滤给定可迭代对象的元素。

在这里,使用filter()和__ne__(不等于运算符的功能)方法,我们可以过滤列表中不等于所需元素的元素。

示例

在这个例子中,我们使用filter()方法移除列表中所有特定元素的出现。

def removing_elements(my_list, element):
   result = list(filter((element).__ne__, my_list))
   return result

if __name__ == "__main__":
   my_list = [1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10] 
   element = 10
   print("The list before performing the removal operation is: ")
   print(my_list)
   result = removing_elements(my_list, element)

   print("The list after performing the removal operation is: ")
   print(result)

输出

上述程序的输出如下:

The list before performing the removal operation is: 
[1, 10, 20, 10, 21, 16, 18, 10, 22, 10, 8, 10]
The list after performing the removal operation is:
[1, 20, 21, 16, 18, 22, 8]

更新于:2023年5月9日

4K+ 浏览量

启动你的职业生涯

完成课程获得认证

开始学习
广告