我有以下示例数据作为Python中的listobject。
[{'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像一个新人一样对待我,因为我真的是。
所以你有一个字典的列表。要从字典中删除tournament_url
键,我们将使用字典理解
my_list = [{k:v for k, v in d.items() if k != 'tournament_url'} for d in my_list]
在官方python文档中了解更多有关理解的信息
对于第一个问题:
for item in table:
item.pop(tournament_url)
关于第二个问题:
[item for item in table if item[leagueid] == 1212]
事实上,list
没有键,list
有索引,dictionary
有键。在您的例子中,您有一个字典列表,您需要的是从列表的每个项(字典)中移除一些键(2确切地说:description和tournament_url):
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
项以仅检索某些键,可以执行以下操作:
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字典中删除一些键。键在列表中提供;我到目前为止的代码:
问题内容: 从字典中删除键时,我使用: 有没有一种方法可以做到这一点? 问题答案: 要删除键而不管它是否在字典中,请使用以下两个参数的形式: 如果典中存在,则返回,None否则返回。如果第二个参数未指定(即)并且key不存在,则引发a。 要删除肯定存在的密钥,你还可以使用 如果关键字在字典中不存在,则会引发 。
从字典中删除键时,我使用: 有没有一个简单的方法可以做到这一点?
问题内容: 有一个字典列表,我想删除具有相同键和值对的字典。 对于此列表: 我想退掉这个: 另一个例子: 对于此列表: 我想退掉这个: 问题答案: 尝试这个: 该策略是将字典列表转换为元组列表,其中元组包含字典项。由于可以对元组进行散列,因此你可以使用删除重复项set(在这里使用,这将是更老的python替代品,然后,使用来从元组中重新创建字典dict。 哪里: l 是原始清单 d 是列表中的词典
问题内容: 如果我有词典列表,请说: 并且我想删除具有2(或name )的字典,以编程方式解决此问题的最有效方法是什么(也就是说,我不知道列表中条目的索引,因此它可以)只是被弹出)。 问题答案: 编辑 :由于对此代码的性能提出了一些疑问(一些基于对Python的性能特征的误解,一些基于超出给定规范的假设,即列表中仅存在一个dict,其key的值为2) id”),我希望在此方面给您保证。 在旧的Li