web-dev-qa-db-ja.com

Python:リストへの乱数

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個ずつ生成します。私は何を間違えていますか?

47
Linda Leang

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)
76
robertklep
import random
my_randoms = [random.randrange(1, 101, 1) for _ in range(10)]
39
mattexx

printステートメントのインデントを修正します

import random

my_randoms=[]
for i in range (10):
    my_randoms.append(random.randrange(1,101,1))

print (my_randoms)
17
karthikr

ここでは、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]
7
Stryker

これはかなり遅いですが、誰かがこれが役立つと思う場合

リスト内包表記を使用できます。

Rand = [random.randint(0, 100) for x in range(1, 11)]
print(Rand)

出力:

[974, 440, 305, 102, 822, 128, 205, 362, 948, 751]

乾杯!

6
Ben Solien
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)
1
perwaiz alam