Одно существенное различие между тем, что делает SQL, и тем, что вы можете делать в идиоматическом python, в SQL, вы сообщаете оценщику, какую информацию вы ищете, и он разрабатывает наиболее эффективный способ получения информации на основе структуры данные он держит. В python вы можете только указать интерпретатору , как вам нужны данные, эквивалента планировщику запросов нет.
Тем не менее, есть несколько дополнительных инструментов, помимо понимания списка, которые очень помогают.
Во-первых, используйте структуру, которая очень похожа на декларативную природу SQL. Многие из них являются встроенными. map
, filter
, reduce
, zip
, all
, any
, sorted
, а также содержимое пакетов operator
, functools
и itertools
, все предложения довольно сжатый способ выражения запросов данных.