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]