web-dev-qa-db-ja.com

連続番号のリストを生成するにはどうすればよいですか?

pythonに数値入力8があり、8のような連続した数値のリストを生成したい場合

[0, 1, 2, 3, 4, 5, 6, 7, 8]

どうすればこれができますか?

45
yezi3

Python 3では、このような組み込みの range 関数を使用できます

>>> list(range(9))
[0, 1, 2, 3, 4, 5, 6, 7, 8]

注1:Python 3.xのrange関数は、rangeオブジェクトを返します。リストが必要な場合は、答えに示したように list 関数を使用して、明示的にリストに変換する必要があります。

注2:番号9をrange関数に渡します。なぜなら、range関数は、指定された番号まで番号を生成しますが、その番号は含まれません。したがって、実際の数+ 1を指定します。

注3:Python 2および3では、rangeの機能にわずかな違いがあります。詳細については、 この答え

86
thefourtheye

Pythonの組み込み範囲関数を使用する:

Python 2

input = 8
output = range(input + 1)

print output
[0, 1, 2, 3, 4, 5, 6, 7, 8]

Python

input = 8
output = list(range(input + 1))

print(output)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
6
ds_chem

別の例を挙げると、これを行うにはrange(value)が群を抜いて最善の方法ですが、これは後で何か他のことをするのに役立つかもしれません。

list = []
calc = 0

while int(calc) < 9:
    list.append(calc)
    calc = int(calc) + 1

print list
[0, 1, 2, 3, 4, 5, 6, 7, 8]
2
jester112358

結果の求め方に応じて、forループ内の各数値を印刷することもできます。

def numbers():
    for i in range(int(input('How far do you wanna go? '))+1):
        print(i)

たとえば、ユーザー入力が7の場合:

How far do you wanna go? 7
0
1
2
3
4
5
6
7

Forループの「+1」を削除してprintステートメントに配置することもできます。これにより、0ではなく1から開始するように変更されます。

0
CannedScientist

注:-確かにpython-3xでは使用する必要がありますRange関数必要に応じて数値を生成するために機能します。標準的な使用方法Range関数連続番号のリストを作成する

x=list(range(10))
#"list"_will_make_all_numbers_generated_by_range_in_a_list
#number_in_range_(10)_is_an_option_you_can_change_as_you_want
print (x)
#Output_is_ [0,1,2,3,4,5,6,7,8,9]

また、関数を作成して、範囲関数を使用して連続した数字のリストを生成したい場合は、このコードを見てください!

def  consecutive_numbers(n) :
    list=[i for i in range(n)]
    return (list)
print(consecutive_numbers(10))

幸運を!

0