1

Python で整数があるとします。たとえば、100 です。

この整数を、この整数まで数えられるリストに変換したいと思います。例: [1,2,3,... 100]

これを行う最も効率的な方法は何ですか?

(なぜ私がこれをしたいのか疑問に思っている場合は、私が使用したい Django Paginate ライブラリがリストを必要とするためです。これを行わずに Paginate を使用するよりエレガントな方法があれば、私に知らせてください)。

4

3 に答える 3

7

Pythonrange()ビルトインはまさにあなたが望むことを行います。例えば:

range(1, 101)

は、コンピューター サイエンスでは通常のようにrange()からカウントされるため、 を渡す必要があることに注意してください。指定された値までカウントされます。したがって、一般的には、から までカウントします。01101100range(1, n+1)1n

また、3.x では、これはリストではなくイテレータを生成することに注意してください。したがって、リストが必要な場合は、list()への呼び出しを単純にラップできますrange()。とはいえ、ほとんどの場合、リストではなくイテレータを使用できます (イテレータは遅延計算できるため、大きな利点があります)。その場合、リストを作成する必要はありません (2.x では機能3.x の範囲のようなものは、 で実現できますxrange()

于 2013-01-06T02:25:24.333 に答える
3

Lattyware によって提供された解決策は、リストを生成するのに正しいですが、Django のページネーションを使用している場合は、単に使用できますpaginator_instance.page_range

https://docs.djangoproject.com/en/dev/topics/pagination/#django.core.paginator.Paginator.page_range

于 2013-01-06T03:07:31.740 に答える
1

range または xrange を使用できます。xrange の方が高速ですが、反復子を返します。

>>>range(1,101)
[1, 2, 3, ... , 99, 100]

>>> xrange(1,101)
xrange(1, 101)

>>>list(xrange(1,101))
[1, 2, 3, ... , 99, 100]
于 2013-01-06T02:25:38.980 に答える