假设我们有一个这样的对象列表:
my_objects = [
{
"id":0,
"some_value":"a"
},
{
"id":1,
"some_value":"a"
},
{
"id":2,
"some_value":"b"
},
{
"id":3,
"some_value":"b"
},
]
给定一个像这样的id列表:
ids = [1, 2]
用pythonic的方法来检索列表中所有id的对象的列表是什么?例如:
my_objects_filtered = [
{
"id":1,
"some_value":"a"
},
{
"id":2,
"some_value":"b"
}
]
最后我想要的是列表“ids”中所有id的“some_value”值的列表:
ids = [a, b]
我可以这样做:
some_values = [my_object.param_id for my_object in my_objects_filtered]
但我不知道如何得到my_objects_filtered
提前感谢。
5条答案
按热度按时间js5cn81o1#
类似下面的东西
输出
wnrlj8wa2#
有一个简洁的可选
if
部件列表解析:rxztt3cl3#
a64a0gku4#
你可以尝试这样的东西:
但我不确定是不是pythonic的方式
使用filter和lambda可能更好:
bxfogqkk5#
如果你知道
id
和some_value
会出现在每个字典中,那么你可以使用operator.itemgetter
:如果你也知道它们是有序的,并且字典只有2个键,那么你可以只Map
dict.values
:如果它们是有序的,但可能有更多的键,那么只需抛出一个catch all变量: