在 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]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP