gpt4 book ai didi

python - 如何从列表python中的多个字典中删除键

转载 作者:行者123 更新时间:2023-12-03 20:18:23 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How can I remove a key from a Python dictionary?

(14 个回答)


4年前关闭。




我有以下示例数据作为 python 中的列表对象。

[{'itemdef': 10541,
'description': 'Dota 2 Just For Fun tournament. ',
'tournament_url': 'https://binarybeast.com/xDOTA21404228/',
'leagueid': 1212,
'name': 'Dota 2 Just For Fun'},
{'itemdef': 10742,
'description': 'The global Dota 2 league for everyone.',
'tournament_url': 'http://www.joindota.com/en/leagues/',
'leagueid': 1640,
'name': 'joinDOTA League Season 3'}]

我如何从这个列表中删除描述,tour_url;或者我怎么能只保留名称和 Leagueid 键。我尝试了各种解决方案,但似乎都不起作用。

第二个问题:如何过滤此列表?如在 mysql 中:
select *
from table
where leagueid = 1212

请把我当成一个 Python 新手,因为我真的是。

最佳答案

事实上list没有 key ,list有索引,和 dictionary有 key 。在您的情况下,您有一个字典列表,您需要从列表的每个项目(字典)中删除一些键(确切地说是 2 个:描述和锦标赛网址):

for item in my_list:  # my_list if the list that you have in your question
del item['description']
del item['tournament_url']

要使用某些条件从上面的列表中检索项目,您可以执行以下操作:
[item for item in my_list if your_condition_here]

示例:
>>> [item for item in my_list if item['itemdef'] == 10541]
[{'leagueid': 1212, 'itemdef': 10541, 'name': 'Dota 2 Just For Fun'}]

编辑:

过滤 my_list items 只检索一些键,你可以这样做:
keys_to_keep = ['itemdef', 'name']

res = [{ key: item[key] for key in keys_to_keep } for item in my_list]
print(res)
# Output: [{'itemdef': 10541, 'name': 'Dota 2 Just For Fun'}, {'itemdef': 10742, 'name': 'joinDOTA League Season 3'}]

关于python - 如何从列表python中的多个字典中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916104/

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