Python 对于';名单上有什么

Python 对于';名单上有什么,python,list,dictionary,for-loop,Python,List,Dictionary,For Loop,我正在尝试返回一个字典列表,该列表中的字典与游戏\u list\u id中的字典具有相同的id 到目前为止,我得到的是: list_games = [ {'id': 10, 'name_game': 'x1'}, {'id': 20, 'name_game': 'x2'}, {'id': 30, 'name_game': 'x3'}, {'id': 40, 'name_game': 'x4'}, {'id': 50, 'name_game': 'x5'},

我正在尝试返回一个字典列表,该列表中的字典与游戏\u list\u id中的字典具有相同的id

到目前为止,我得到的是:

list_games = [
    {'id': 10, 'name_game': 'x1'},
    {'id': 20, 'name_game': 'x2'},
    {'id': 30, 'name_game': 'x3'},
    {'id': 40, 'name_game': 'x4'},
    {'id': 50, 'name_game': 'x5'},
    {'id': 60, 'name_game': 'x6'},
    {'id': 70, 'name_game': 'x7'},
    {'id': 80, 'name_game': 'x8'},
    {'id': 90, 'name_game': 'x9'}
]

game_id_list = [10, 30, 40]


def remove_game_id_list(list_games, game_id_list):
    results = []
    for b in game_id_list:
        for i in range(len(list_games)):
            if list_games[i]['id'] != b:
                results.append(list_games[i])

    return results

您可以在一行中完成此操作,而无需函数:

result = [dct for dct in list_games if dct['id'] not in game_id_list]

您在
if list_games[i]['id']处的逻辑错误!=b:
,您正在多次添加内容。仅供参考:为i in range(len(list\u games))编写
的一种更具python风格的方法是为list\u games中的游戏编写
。或者如果索引
i
很重要:
对于i,枚举中的游戏(列表游戏)