2017-03-21 18 views
1

リストの開始値と長さを持つリストを作成するにはどうすればいいですか?例えば、私は長さが5であった17から始まるリストを作成したい場合:Python - 与えられた値から始まって与えられた長さでリストを作成する

num_list = [17, 18, 19, 20, 21] 

しかし私はそれが正しい結果に

def answer(start, length): 
id_arr = list(range(start, length)) 
print(id_arr) 

answer(17, 10) 

Output: [] 

を生産されていないと私は理解して以下のことを試してみましたこれは、開始値が17であるためですが、値10で終了するようにして空のリストを作成しようとしていますので、lengthの値をリストのサイズで終わらないようにするにはどうすればよいですかリストの価値?

+0

必要な長さの空のリストを初期化して値を記入できませんか? –

+0

問題の制約によって、来る各リストのサイズを知ることができません。それはちょうどサイズが常に少なくとも長さになると述べている1 –

+1

範囲(開始、開始+長さ) – kuro

答えて

3

範囲機能自体がすべてそれを行います。

range(starting value, endvalue+1, step) 

カスタム関数を書く場合ので、あなたがのために行くrange(17,22)

のために行くことができます:あなたのDEF id_arr =リスト(範囲(+長開始、開始))に

def answer(start, length): 
    id_arr = list(range(start, start+length)) 
    print(id_arr) 

answer(17, 5) 

output : 
[17, 18, 19, 20, 21] 
+0

パーフェクト、それは望ましい結果を生成します。答えてくれてありがとう。 –

+0

@Gabriel_Wようこそ!あなたを助けてうれしい。 –

1

実際には、最初の引数は下限で、2番目の引数は半分の間隔で上限です。

list(range(10,20)) 

[10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 
1
def answer(start, length): 
    id_arr = list(range(start, start+length)) 
    print(id_arr) 

answer(17, 5) 
1

ちょうど範囲まで一覧表示する追加します。

def answer(start,length): 
    anslist=[start] 
    for ans in range(length): 
     anslist.append(start+ans) 
    print anslist 
1

Pythonの組み込み範囲関数は、foの中に の数列を生成するのに非常に便利ですリストのrm。範囲内に2つのパラメータを指定した場合最初のパラメータは開始点、2つ目のパラメータは終了点です。指定されたエンドポイントは決して生成されたリストの一部ではありません。したがって、この方法を使用することができます:

def answer(start, length): 
    id_arr = [list_items for list_items in range(start, start + length)] 
    print id_arr 


answer (17, 5) 
>> [17, 18, 19, 20, 21] 
関連する問題