python - 如何在 Python 对象列表上使用 np.where 来返回匹配条件的内部对象?
问题描述
为了进一步掌握 Python,我正在努力在向量化 numpy 中的列表上实现看似基本的搜索任务。
我有一个字典列表,我想选择那些具有特定键:值对的字典,这将是我的真实条件。我的直觉是np.where
在列表上使用,因为此函数返回列表中匹配特定条件的成员。但np.where
似乎不允许指定列表成员的任何内部属性/子列表。
例如,下面的代码给了我一个TypeError
列表索引,
dictionaries = [{'name':'Koko', 'value':1},
{'name':'Sam', 'value':2},
{'name':'Mike', 'value':3},
{'name':'Bob', 'value':4},
{'name':'Alex', 'value':5}]
names_to_check = ['Koko', 'Bob']
search_results = np.where(dictionaries['name'] in names_to_check)
我知道我总是可以for loop
手动处理这个问题。
我在np.where
这里使用是对的,还是有更好的方法来矢量化这个任务?
解决方案
而不是numpy
我宁愿去filter
:
>>> list(filter(lambda x: x["name"] in names_to_check, dictionaries))
[{'name': 'Koko', 'value': 1}, {'name': 'Bob', 'value': 4}]
推荐阅读
- php - 从关联数组动态构造更新语句
- windows - 在 Windows 上自定义编译 Tesseract-ocr (4.0)
- junit - 为什么 mock 接受任何参数?
- r - 闪亮的服务器下线
- java - 如何在JAVA中用空格分割文件
- python - lightgbm 中的 f1_score 指标
- java - 为什么我的 ArrayBlockingQueue 在放入列表后会导致一个空队列?
- postgresql - 有没有办法将 AWS RDS postgres.log 导入 CloudWatch?
- html - Angular Material 进度条,使用自定义颜色
- php - 如何将WordPress功能代码移动到内容底部