在 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.