Skip to main content
 首页 » 编程设计

python之计算字典中项目的频率

2025年05月04日9dflying

我有一个名为purchases 的字典,它以支付方式作为键,一个包含支付类型及其频率作为值的字典。示例格式如下:

{'Credit card': {'Grocery': 3, 'Gas': 1, 'Store': 2}, 
'Debit card': {'Food': 2}, 
'Check': {'Rent': 1, 'Utilities': 1}, … } 

我想创建一个新字典,以付款方式的频率为键,以付款方式为值。期望的输出:

[{6: ['Credit card']}, {2: ['Debit card', 'Check']}] 

到目前为止,这是我的代码:

artist_count = {} 
for artist in artist_songs.keys(): 
    if artist in artist_count: 
        artist_count[artist] += 1 
    else: 
        artist_count[artist] = 1 
print(artist_count) 

目前,这会输出一个字典,其中每个唯一的支付方式作为键,1 作为值。我在计算每个键的频率以及切换键和值时遇到困难。 (我相信我可以为前者使用 len 函数,但我还没有运气。)

如何创建一个以支付方式频率为键,以支付方式为值的新字典?

请您参考如下方法:

让我们分两步完成:

  1. 我们首先创建一个字典,其中键是支付类型,值是频率。
  2. 然后,我们对这个字典进行逆向,得到你想要的字典。

对于第一部分,

freq_dict = {} 
for key in given_dict: 
    freq_dict[key] = 0 
    for item in given_dict[key]: 
        freq_dict[key]+=given_dict[key][item] 

第二部分:

result_dict = {} 
for key in freq_dict: 
    value = freq_dict[key] 
    if value not in result_dict: 
        result_dict[value] = [] 
    result_dict[value].append(key)  

given_dict 是我们开始使用的字典。

如果有什么不清楚的地方请告诉我:)