这是我要执行的查询类型,用伪代码编写:
select blob from blobs where blob['color'] == 'red' having maximum(blob['size'])
显然,我可以在 python 中这样写:
redBlobs = [];
for blob in blobs:
if blob['color'] == 'red':
redBlobs.append('blob')
largestBlob = None
for redBlob in redBlobs:
if largestBlob == None or redBlob['size'] > largestBlob['size']:
largestBlob = redBlob
return largestBlob
但我怀疑有一种更清洁的方法。我是 python 新手,所以我仍然非常迫切地接近它。
编辑:
这是我在查看其他一些关于 SO 的问题后提出的解决方案:
max([blob for blob in blobs if blob['color'] == 'red'], key = lambda b: b['size'])
想必还有更好的办法。