3 回答

TA貢獻1757條經驗 獲得超8個贊
您可以使用 acollections.Counter及其most_common方法:
from collections import Counter
lst = ["apple", "apple", "banana", "orange", "orange", "banana", "banana", "apple", "banana"]
res = [k for k, _ in Counter(lst).most_common()]
# ['banana', 'apple', 'orange']

TA貢獻1818條經驗 獲得超11個贊
使用計數器:
from collections import Counter
data = ["apple", "apple", "banana", "orange", "orange", "banana", "banana", "apple", "banana"]
counts = Counter(data)
result = sorted(counts, key=counts.get, reverse=True)
print(result)
輸出
['banana', 'apple', 'orange']

TA貢獻1840條經驗 獲得超5個贊
根據原始列表的計數對集合進行排序。編輯:正如評論中所指出的,如果您有很多候選人,您可能想要使用其他解決方案,多次調用列表的計數方法不是最佳選擇。
a = ["apple", "apple", "banana", "orange", "orange", "banana", "banana", "apple", "banana"]
sorted(set(a), key = lambda x: a.count(x), reverse = True) #reverse for descending
結果:
['banana', 'apple', 'orange']
添加回答
舉報