Вот тип запроса, который я хочу выполнить, написанный в псевдокоде:
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, поэтому я все еще очень настойчиво к нему стремлюсь.
EDIT:
Вот решение, которое я нашел, посмотрев на некоторые другие вопросы по SO:
max([blob for blob in blobs if blob['color'] == 'red'], key = lambda b: b['size'])
Предположительно, есть лучшие способы.