是否可以使用 lambda 获取?我知道我们可以使用 lambda 执行 sorted
函数,它非常有用。
是否有一种简短的方法来获取列表中的对象,其中键 'id'
处的对象等于 20
?
我们当然可以在整个过程中使用循环和循环。
x = [
{'Car': 'Honda', 'id': 12},
{'Car': 'Mazda', 'id': 45},
{'Car': 'Toyota', 'id': 20}
]
desired_val = None
for item in list:
if item['id'] == 20:
desired_val = item
break
是否可以使用 lambda
实现相同的功能?我对 lambda
不是很了解。
最佳答案
这里没有必要使用lambda
。 Lambda 并不是什么神奇的东西,它只是编写简单函数的简写。与编写函数的普通方法相比,它不如强大,而不是更多。 (这并不是说它有时不是很方便,只是它没有超能力。)
无论如何,您可以使用带有默认参数的生成器表达式。请注意,我在这里返回对象本身,而不是 20,因为这对我来说更有意义。
>>> somelist = [{"id": 10, "x": 1}, {"id": 20, "y": 2}, {"id": 30, "z": 3}]
>>> desired_val = next((item for item in somelist if item['id'] == 20), None)
>>> print(desired_val)
{'y': 2, 'id': 20}
>>> desired_val = next((item for item in somelist if item['id'] == 21), None)
>>> print(desired_val)
None
关于Python:使用lambda获取列表中的项目,其中dict键是某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477709/