-4

list()Pythonサイトで参考文献が見つかりませんでした。それについて参考にしていただけませんか?

Django でのコードの例:

list(Tag.objects.filter(name__istartswith=q)[:10])

これは何を意味するのでしょうか?

4

1 に答える 1

1

list()Python リスト オブジェクトを作成します。

イテラブルを指定すると、イテラブルのすべての要素が結果のリストにコピーされます。

項目がiterableの項目と同じで、同じ順序になっているリストを返します。

この式は、名前が(大文字と小文字を区別しない) で始まる 10 個のオブジェクトTag.objects.filter(name__istartswith=q)[:10]を生成する iterable を作成します。Tagq

これは単にクエリ結果のローカル コピーを作成するだけなので、コードは毎回新しいクエリを再発行することなくリストに直接インデックスを付けることができます。

これは、DjangoのQuerySet()ドキュメントに具体的に記載されています。

list(). QuerySetaを呼び出すことで a の評価を強制list()します。例えば:

entry_list = list(Entry.objects.all())

ただし、Django はリストの各要素をメモリにロードするため、これには大きなメモリ オーバーヘッドが発生する可能性があることに注意してください。対照的に、 a を反復処理するとQuerySet、データベースを利用してデータをロードし、必要なときにのみオブジェクトをインスタンス化します。

于 2013-10-02T17:07:15.183 に答える