次の単純なC# LINQクエリを例に取り、それが1 つの列を持つ SQL テーブルでdb.Numbers
あると想像してくださいNumber
。
var result =
from n in db.Numbers
where n.Number < 5
select n.Number;
これは、次のようなSQLクエリを生成するため、 C#で非常に効率的に実行されます。
select Number from Numbers where Number < 5
データベースからすべての数値を選択し、 C#でそれらをフィルター処理することは、最初はそうしているように見えるかもしれません。
Pythonは同様の構文をサポートしています。
result = [n.Number for n in Numbers if n.Number < 5]
ただし、if
ここでの句がサーバー側ではなくクライアント側でフィルタリングを行うと、効率が大幅に低下します。
PythonでLINQほど効率的なものはありますか? (私は現在、 Python対IronPython対Booを評価しているので、これらの言語のいずれかで機能する答えは問題ありません。)