在处理列表中的数据时,我们可能会遇到这样的情况:我们根据元素的出现频率有选择地从列表中删除元素。在本文中,我们将探讨如何从频率小于等于2的列表中删除所有元素。您还可以在程序中将值2更改为任何数字。
count方法将列表中每个元素的计数保留。因此,我们将其与for循环一起使用,并放置一个条件以仅保留计数大于2的元素。
listA = ['Mon', 3,'Tue','Mon', 9, 3, 3] # Printing original list print("Original List : " + str(listA)) # Remove elements with count less than 2 res = [i for i in listA if listA.count(i) > 2] # Result print("List after removing element with frequency < 3 : ",res)
输出结果
运行上面的代码给我们以下结果-
Original List : ['Mon', 3, 'Tue', 'Mon', 9, 3, 3] List after removing element with frequency < 3 : [3, 3, 3]
Counter方法计算可迭代元素中元素的出现次数。因此,通过将所需列表传递到其中可以直接使用。
from collections import Counter listA = ['Mon', 3,'Tue','Mon', 9, 3, 3] # printing original list print("Original List : " + str(listA)) # Remove elements with count less than 2 res = [ele for ele in listA if Counter(listA)[ele] > 2] # Result print("List after removing element with frequency < 3 : ",res)
输出结果
运行上面的代码给我们以下结果-
Original List : ['Mon', 3, 'Tue', 'Mon', 9, 3, 3] List after removing element with frequency < 3 : [3, 3, 3]