0から100までの10個の乱数のmy_randomsという「リスト」を作成します。
これは私がこれまでに持っているものです:
import random
my_randoms=[]
for i in range (10):
my_randoms.append(random.randrange(1, 101, 1))
print (my_randoms)
残念ながら、Pythonの出力は次のとおりです。
[34]
[34, 30]
[34, 30, 75]
[34, 30, 75, 27]
[34, 30, 75, 27, 8]
[34, 30, 75, 27, 8, 58]
[34, 30, 75, 27, 8, 58, 10]
[34, 30, 75, 27, 8, 58, 10, 1]
[34, 30, 75, 27, 8, 58, 10, 1, 59]
[34, 30, 75, 27, 8, 58, 10, 1, 59, 25]
私が求めているように10個の数字を生成しますが、一度に1個ずつ生成します。私は何を間違えていますか?
random.sample
を使用して、1回の呼び出しでリストを生成できます。
import random
my_randoms = random.sample(xrange(100), 10)
これにより、0から99までの範囲の数値が生成されます。1から100が必要な場合は、これを使用できます(私の複雑なソリューションを指摘してくれた@martineauに感謝します)。
my_randoms = random.sample(xrange(1, 101), 10)
import random
my_randoms = [random.randrange(1, 101, 1) for _ in range(10)]
print
ステートメントのインデントを修正します
import random
my_randoms=[]
for i in range (10):
my_randoms.append(random.randrange(1,101,1))
print (my_randoms)
ここでは、sample
メソッドを使用して、0〜100の10個の乱数を生成します。
注:Python 3のrange
関数を使用しています(xrange
ではありません)。
import random
print(random.sample(range(0, 100), 10))
出力はlistに配置されます:
[11, 72, 64, 65, 16, 94, 29, 79, 76, 27]
これはかなり遅いですが、誰かがこれが役立つと思う場合
リスト内包表記を使用できます。
Rand = [random.randint(0, 100) for x in range(1, 11)]
print(Rand)
出力:
[974, 440, 305, 102, 822, 128, 205, 362, 948, 751]
乾杯!
import random
a=[]
n=int(input("Enter number of elements:"))
for j in range(n):
a.append(random.randint(1,20))
print('Randomised list is: ',a)