2 つの数字が与えられる r1 そして r2 (範囲を定義します)、指定された範囲 (範囲を含む) のリストを作成する Python プログラムを作成します。
例:
Input : r1 = -1, r2 = 1 Output : [-1, 0, 1] Input : r1 = 5, r2 = 9 Output : [5, 6, 7, 8, 9]>
いくつかのアプローチについて説明しましょう 指定された範囲の数値のリストを作成する パイソン 。
ループを使用した単純なアプローチ
を作成する素朴な方法 リスト 指定された範囲内では、最初に空のリストを作成し、for の反復ごとに各整数の後続値を追加します。 ループ 。
Python3
# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> > # Testing if range r1 and r2> > # are equal> > if> (r1> => => r2):> > return> r1> > else> :> > # Create empty list> > res> => []> > # loop to append successors to> > # list until r2 is reached.> > while> (r1 +1 ): res.append(r1) r1 += 1 return res # Driver Code r1, r2 = -1, 1 print(createList(r1, r2))> |
>
>
出力:
[-1, 0, 1]>
リスト内包表記の使用
私たちも使うことができます リストの内包表記 目的のために。 for ループで「item」を反復するだけです r1 に r2 すべての「項目」をリストとして返します。これは単純なワンライナーコードになります。
Python3
# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> > return> [item> for> item> in> range> (r1, r2> +> 1> )]> > # Driver Code> r1, r2> => -> 1> ,> 1> print> (createList(r1, r2))> |
>
>
出力:
[-1, 0, 1]>
Python range() の使用
Python には、開始値から終了値までの一連の数値を作成し、そのシーケンス内の各項目を出力する直接関数 range() が付属しています。を使用しております 範囲() と r1 そして r2 次に、シーケンスをリストに変換します。
Python3
# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> > return> list> (> range> (r1, r2> +> 1> ))> > # Driver Code> r1, r2> => -> 1> ,> 1> print> (createList(r1, r2))> |
>
>
出力:
[-1, 0, 1]>
itertools の使用:
range 関数を itertools モジュールのchain 関数と組み合わせて使用して、指定された範囲の数値のリストを作成することもできます。これは次のようにして実行できます。
Python3
# Python3 Program to Create list> # with integers within given range> import> itertools> r1> => -> 5> r2> => 5> #using the chain function from the itertools module> numbers> => list> (itertools.chain(> range> (r1, r2> +> 1> )))> print> (numbers)> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>出力
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]>
これにより、itertools モジュールのchain 関数を使用して範囲内の要素を連鎖させて、r1 から r2 までの数値のリストが作成されます。
numpy.arange() の使用
パイソン numpy.arange() 間隔に従って等間隔の要素を含むリストを返します。ここでは、目的の出力を得る必要性に応じて間隔を 1 に設定します。
Python3
# Python3 Program to Create list> # with integers within given range> import> numpy as np> def> createList(r1, r2):> > return> np.arange(r1, r2> +> 1> ,> 1> )> > # Driver Code> r1, r2> => -> 1> ,> 1> print> (createList(r1, r2))> |
>
アメリカの都市の名前
>
出力:
[-1, 0, 1]>
numpyを使用して指定された範囲の数値のリストを作成する
ここでは、指定された範囲から定義された増分で数値のリストを作成しています。
Python3
import> numpy as np> def> fun(start, end, step):> > num> => np.linspace(start, end,(end> -> start)> > *> int> (> 1> /> step)> +> 1> ).tolist()> > return> [> round> (i,> 2> )> for> i> in> num]> > print> (fun(> 1> ,> 5> ,> 0.5> ))> |
>
>
出力:
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]>
再帰の使用
指定された範囲内の数値のリストを作成する別の方法は、再帰を使用することです。これには、現在の範囲と返されるリストを受け取る再帰関数の定義が含まれます。その後、現在の範囲をリストに追加し、範囲の終わりに達するまで次の範囲を使用して関数を再度呼び出します。
Python3
def> create_list(r1, r2, lst):> > # Base case: if r1 is equal to r2, return the list> > if> r1> => => r2> +> 1> :> > return> lst> > # Otherwise, append r1 to the list and call the function again with r1 + 1> > else> :> > lst.append(r1)> > return> create_list(r1> +> 1> , r2, lst)> # Test the function> print> (create_list(> 5> ,> 9> , []))> # [5, 6, 7, 8, 9]> print> (create_list(> -> 1> ,> 1> , []))> # [-1, 0, 1]> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>出力
[5, 6, 7, 8, 9] [-1, 0, 1]>
このアプローチの時間計算量は O(n) で、補助空間は O(n) です。ここで、n はリスト内の要素の数です。
アプローチ 5: map() と lambda 関数を使用する
このアプローチでは、map() とラムダ関数を使用して、指定された範囲内の数値のリストを生成します。 map() は、シーケンス内の各要素にラムダ関数を適用し、マップ オブジェクトを返します。マップ オブジェクトをリストに変換して返します。
アルゴリズム
map() とラムダ関数を使用して、指定された範囲内の数値のリストを生成します。
マップ オブジェクトをリストに変換して返します。
Python3
def> create_list(r1, r2):> > return> list> (> map> (> lambda> x: x,> range> (r1, r2> +> 1> )))> # Test the function> print> (create_list(> 5> ,> 9> ))> # [5, 6, 7, 8, 9]> print> (create_list(> -> 1> ,> 1> ))> # [-1, 0, 1]> |
>
>出力
[5, 6, 7, 8, 9] [-1, 0, 1]>
時間計算量: O(r2-r1) ここで、r1 と r2 は指定された範囲です。
空間複雑度: O(r2-r1) ここで、r1 と r2 は指定された範囲です。