gpt4 book ai didi

javascript - 模拟 python 中 findWhere() 的行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:47:26 24 4
gpt4 key购买 nike

下划线有一个方便的小函数,findWhere()可用于在列表中查找特定结构,例如

myList = [
{'name': 'Thor'},
{'name': 'Odin'},
{'name': 'Freya'},
{'name': 'Skadi'}
];
findWhere(myList, {'name': 'Skadi'});

结果:[{'name': 'Skadi'}]

更好的例子:

my_list = [
{'name': 'Thor',
'occupation': 'God of Thunder',
'favorite color': 'MY HAMMER'}
{'name': 'Skadi',
'occupation': 'Queen of the Ice Giants',
'favorite color': 'purpz'}
]
findWhere(my_list, {'name': 'Skadi'})

结果:

[{'name': 'Skadi',
'occupation': 'Queen of the Ice Giants',
'favorite color': 'purpz'}]

唉,我在 python 中找不到类似的东西。实现相同功能的 Pythonic 方式是什么?

最佳答案

您可以简单地将其定义为 generator :

def find_where(iterable, dct):
for item in iterable:
if all(item[key] == value for key, value in dct.items()):
yield item

my_list = [
{'name': 'Thor', 'age': 23},
{'name': 'Odin', 'age': 42},
{'name': 'Freya', 'age': 50},
{'name': 'Skadi', 'age': 23},
]

print list(find_where(my_list, {'age': 23}))

输出:

[{'age': 23, 'name': 'Thor'}, {'age': 23, 'name': 'Skadi'}]

另见 all()list comprehensions有关表达式“肉”的详细信息。

关于javascript - 模拟 python 中 findWhere() 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553060/

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