gpt4 book ai didi

Python - 迭代字典并更改字典 - 如何?

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:14 24 4
gpt4 key购买 nike

我正在编写一个函数来根据多数在系统中选择获胜者。如果没有多数票,那么我需要删除得票最少的选择并继续下去,直到有一个获得多数票的获胜者。例如,

voting({'a':12, 'b':9, 'd':4})

在这种情况下,'a' 有 12 票,'b' 有 9 票,'d' 有 4 票。由于 'a' 没有多数票(12/25 票),我需要从可用选项中删除 'd',它将获得多数票(12/21 ).每个“选票”中可能有任意数量的选择,重要的是每个“选票”中的第一名。

我的代码用于def voting(votes):

d = {}
winning_party = ''
i = 0
for key in votes.keys():
d[key] = votes[key]
while winning_party == '':
for key, vote in d.items():
if d[key] > 0.5 * sum(d.values()):
winning_party = key
return winning_party
else:
if d[key] == min(d.values()):
del d[key]

我已尝试进行微小的更改,但我收到一个错误消息,即在迭代过程中字典的大小发生了变化,或者该函数停止工作。

谁能帮我修复代码,或者告诉我如何避免在循环中更改字典?我只能真正使用上面的代码,即我不能导入任何东西,也不能使用除基本功能以外的任何东西。

最佳答案

while winning_party == '':
total_votes = sum(d.values()) # Recompute the total before each iteration.
for key, vote in d.items():
if d[key] > 0.5 * total_votes:
winning_party = key
return winning_party

min_party = min(d, key=d.get) # Find key having minimum votes.
del d[min_party] # Delete it.

关于Python - 迭代字典并更改字典 - 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com