gpt4 book ai didi

python - 如何将字典列表拆分为 2 个单独的字典列表并进行相等性检查

转载 作者:行者123 更新时间:2023-12-02 04:20:43 25 4
gpt4 key购买 nike

我目前正在开发一个可以检测用户游戏和时间的网站。在我的网络应用程序中,用户可以将游戏设置为完成(播放)。我成功地创建了一个字典列表和一个玩到最后的游戏。我认为一些代码说明会有所帮助。

这是我的代码,它应该生成两个单独的字典列表。 played_games_entries 确实有效。我用 else 尝试它,但它不按我的意图工作。我知道这个问题,但很难解释,我现在不知道我的方法应该是什么。老实说,我有点困惑,因为 if 语句有效而 else 语句无效。

def get_name_and_due(request, played_games, games_list):
open_games_entries = []
played_games_entries = []

for game in games_list:
for played_game in played_games:
due_perc = convert_due_into_percentage(game['due'], request.session.get('max_due'))
if game['game_name'] == played_game['played_game_name']:
played_games_entries.append({'name': game['game_name'], 'due': due_perc})
break
else:
pass

这是我为参数 played_games 和 game_list 设置的值。

games_list = [
{'index': '1', 'game_name': 'Temtem', 'due': '00:30:04'},
{'index': '2', 'game_name': 'The Forest', 'due': '10:00:30'},
{'index': '3', 'game_name': 'The Witcher 3: Wild Hunt', 'due': '50:15:25'},
{'index': '4', 'game_name': 'STAR WARS Jedi: Fallen Order', 'due': '18:15:00'}
]

played_games = [
{'played_game_name': 'Grand Theft Auto: San Andreas'},
{'played_game_name': 'The Witcher 3: Wild Hunt'},
{'played_game_name': 'ONE PIECE: PIRATE WARRIORS 4'}
]

最后的代码将是预期的结果。并指出 played_game_entries 确实有效

open_games_entries = [
{'index': '1', 'game_name': 'Temtem', 'due': '24.44'},
{'index': '2', 'game_name': 'The Forest', 'due': '10'},
{'index': '4', 'game_name': 'STAR WARS Jedi: Fallen Order', 'due': '20'}
]

played_games_entries = [
{'index': '3', 'game_name': 'The Witcher 3: Wild Hunt', 'due': '100'}
]

我整天都在自己修复它,但我失败了。我在互联网和 SO 上查找问题,许多人建议设置。但是没有考虑这种方法,因为它是基于列表的,而我有一个字典列表。我真的很想看到一种带有 for 循环的方法,因为我真的认为这是可能的。

最好的问候

琳达

最佳答案

您可以使用 else 作为 for 的一部分(当 for 循环不间断地结束时,代码继续执行到 else):

...
for played_game in played_games:
...
else:
open_games_entries.append(...

在您的代码中:

for game in games_list:
for played_game in played_games:
due_perc = convert_due_into_percentage(game['due'], request.session.get('max_due'))
if game['game_name'] == played_game['played_game_name']:
played_games_entries.append({'index': game['index'], 'game_name': game['game_name'], 'due': due_perc})
break
else:
open_games_entries.append({'index': game['index'], 'game_name': game['game_name'], 'due': due_perc})

关于python - 如何将字典列表拆分为 2 个单独的字典列表并进行相等性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011660/

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