【发布时间】:2019-11-27 01:13:57
【问题描述】:
我有一个名为 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 函数用于前者,但我还没有运气。)
如何创建以支付方式频率为键、支付方式为值的新字典?
【问题讨论】:
-
请提出一个真正的问题。提前致谢。
-
@PeterMortensen 刚刚编辑了它。
-
您必须先计算付款方式的频率。一旦你有了它,你可以循环这些值并填充一个新字典,如果存在频率,你将付款添加到它的列表中,否则你将一个新项目添加到具有新频率的字典和具有单一付款方式的列表中。希望这会有所帮助。
-
您真的希望支付方式的频率作为关键吗?我没有看到一个好的用例。您不希望将付款方式保留为键,但使用 key=payment method 和 value=frequency 的新字典?
-
您想要一个列表或字典作为所需的输出吗?你写了 dict,但你的例子是一个列表。我编辑了你的问题,假设它是一个 dict 作为所需的输出,但你同样可以编辑问题的文本以要求一个列表作为输出。
标签: python dictionary python-3.6