Python 无需再次迭代即可更新旧分数

Python 无需再次迭代即可更新旧分数,python,Python,我有一份名单,上面有一个视频游戏的新旧分数。每个球员的新分数取决于其他球员的旧分数。我可以轻松做到这一点: while not done calculating scores: for each player: player.new_score = calculate_score(player, players_scores) # this fn uses players' old scores for each player: player.o

我有一份名单,上面有一个视频游戏的新旧分数。每个球员的新分数取决于其他球员的旧分数。我可以轻松做到这一点:

while not done calculating scores:
    for each player:
        player.new_score = calculate_score(player, players_scores) # this fn uses players' old scores

    for each player:
        player.old_score = player.new_score
但我不希望有另一层复杂性。 由于新分数取决于旧分数,因此我不希望在更新新分数的相同循环中更新旧分数,如下所示:

while not done calculating scores:
    for each player:
        player.new_score = calculate_score(player, players_scores) # this fn uses players' old scores
        player.old_score = player.new_score

我想知道是否有一种方法可以执行与第一个代码块相同的指令集,而不必再次遍历玩家列表。

我想不出一种方法。是的,这是一种简单的方法,除非出现瓶颈,否则我不会弄乱它。请提供完整的示例代码。“计算分数”如何访问其他玩家的分数?它不接收玩家列表,甚至不是该类的方法。我有一个想法,取决于使用的数据结构。我不确定它是否能按我想要的方式工作。@Prune抱歉,我忘了为calculate_scores添加额外的参数。我想不出一种方法。是的,这是一种简单的方法,除非有瓶颈,否则我不会弄乱它。请提供完整的示例代码。“计算分数”如何访问其他玩家的分数?它不接收玩家列表,甚至不是该类的方法。我有一个想法,取决于使用的数据结构。我不确定它是否按我想要的方式工作。@Prune对不起,我忘了为计算分数添加额外的参数。