在 Python 中删除频率至多为 K 的元素


在从列表中操作数据时,我们可能会遇到根据元素频率选择性地从列表中删除元素的情况。在本文中,我们将探索如何删除频率小于或等于 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]

更新日期:04-05-2020

262 次浏览

启动您的 职业生涯

完成课程以获得认证

开始
广告
© . All rights reserved.