按频率对字符串列表(URL)进行排序并删除重复项

问题描述 投票:1回答:1

我给出了一个包含网站URL的列表。如果元素具有相同的频率,则按字典顺序对其进行排序,而无需导入任何其他库或包。

def solve (S, N):
    # write your code here
    n = len(S)
    dict = {}
    for i in S:
        if i in dict:
            dict[i]+=1
        else:
            dict[i]=0
    return dict

我尝试这样做,但是具有相同频率的元素以与输入相同的顺序打印。

python algorithm dictionary data-structures
1个回答
0
投票

问题是您从未按频率对字典进行排序。

在字典中对出现次数进行计数是很常见的,因此标准库中有一个方便的类,名为collections.Counter,这使这简单得多。

collections.Counter

from collections import Counter def order_by_frequency(urls): counts = Counter(urls) return sorted(counts, key=counts.get, reverse=True) 参数表示它们首先以最高频率进行排序;如果您想首先使用最低频率,则只需删除该参数即可。

© www.soinside.com 2019 - 2024. All rights reserved.