我有一个名为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 函数,但我还没有运气。)
如何创建一个以支付方式频率为键,以支付方式为值的新字典?
请您参考如下方法:
让我们分两步完成:
- 我们首先创建一个字典,其中键是支付类型,值是频率。
- 然后,我们对这个字典进行逆向,得到你想要的字典。
对于第一部分,
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 是我们开始使用的字典。
如果有什么不清楚的地方请告诉我:)
