cor*_*vid 3 javascript python underscore.js
Underscore 有一个方便的小函数findWhere(),可用于在列表中查找特定结构,例如
myList = [
{'name': 'Thor'},
{'name': 'Odin'},
{'name': 'Freya'},
{'name': 'Skadi'}
];
findWhere(myList, {'name': 'Skadi'});
Run Code Online (Sandbox Code Playgroud)
结果:[{'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'})
Run Code Online (Sandbox Code Playgroud)
结果:
[{'name': 'Skadi',
'occupation': 'Queen of the Ice Giants',
'favorite color': 'purpz'}]
Run Code Online (Sandbox Code Playgroud)
唉,我在 python 中找不到类似的东西。实现相同功能的 Python 方式是什么?
您可以简单地将其定义为生成器:
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}))
Run Code Online (Sandbox Code Playgroud)
输出:
[{'age': 23, 'name': 'Thor'}, {'age': 23, 'name': 'Skadi'}]
Run Code Online (Sandbox Code Playgroud)
另请参阅all()并列出推导式以了解有关表达式“内容”的详细信息。
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |