python - 有没有办法搜索列表中有多少个字典有两个特定值?
问题描述
例如
mylist = [{'animal': 'dog', 'price': 30, 'name': 'snowball'}, {'animal': 'cat', 'price': 40, 'name': 'max'}, {'animal': dog, 'price': 30, 'name': 'fido'}]
我知道如何使用以下方法查找列表中有多少个字典具有一个参数
n_dogs = sum(x.get('animal') == 'dog' for x in mylist)
返回2
, 对于列表中的 2 条狗。
现在我将如何查找列表中有多少条目是价格为 的狗30
?
将不胜感激任何帮助:)
解决方案
这是我的解决方案:
sum([x['animal'] == 'dog' and x['price'] == 30 for x in mylist])
但我认为,如果您使用数据,更优雅的方式是使用 pandas:
import pandas as pd
mylist = [{'animal': 'dog', 'price': 30, 'name': 'snowball'}, {'animal': 'cat', 'price': 40, 'name': 'max'}, {'animal': dog, 'price': 30, 'name': 'fido'}]
df = pd.DataFrame(mylist)
print(df[(df.animal == 'dog') & (df.price == 30)])
推荐阅读
- android - PhoneGap Admob, external links... Can't get either one to work
- python - For循环在应该分配两个值时分配一个值
- android - 单击提交按钮时我的应用程序崩溃
- python - 获取给定地理区域的地点(代码优化)
- javascript - JavaScript 中的双括号有什么作用?
- javascript - React-Native:在输入时创建一个新的 TextInput 行
- visualization - 如何在 Alexa Echo Show 上显示图表或可视化?
- yii2 - 我无法在 yii 2.0.16 版本中使用 yii 控制台命令
- javascript - 使用 jest 在节点中模拟 moment.js
- joomla - Akeeba 备份恢复