例如我在列表中有词典,
student_list = [{'name':'ABC', 'marks': 8}, {'name':'DEF', 'marks': 0}, {'name': 'GHI', 'marks': 0}, {'name': 'JKL', 'marks': 0}, {'name': 'JKL', 'marks': 9}]
输出应该像,
[{'name':'ABC', 'marks': 8}, {'name': 'JKL', 'marks': 9}]
最好的方法是什么。
我可以使用forloop
来获取此输出,但我想用python built_in函数来处理它,或者在不使用forloop
的情况下处理它。
答案 0 :(得分:2)
您可以使用列表理解。
print [i for i in student_list if i['marks'] > 0]
根据评论中的建议,您也可以使用
print [i for i in student_list if i.get('marks', 0)]
答案 1 :(得分:1)
你正在寻找一些有点高级的东西:
print filter(lambda x: True if x['marks'] > 0 else False, student_list)
但这实际上只是已经建议的列表推导的等价物。请参阅文档的this相关部分。