2013-05-20 6 views
25

Вопрос: Создание «списка» под названием my_randoms из 10 случайных чисел от 0 до 100.Python: Генератор случайных чисел в список

Это то, что я до сих пор:

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

К сожалению выход питона это:

[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 чисел, как я прошу, но генерирует их по одному. Что я делаю не так??

+15

Поместите свой отпечаток после того, как цикл ... а не в ней. – NominSim

+0

На самом деле, вы генерируете цифры по одному, но ваш исходный код позволяет печатать значения каждый раз, когда он сгенерирован. Нижеприведенные ниже решения о заявлении печати просто ждут и распечатывают список после создания всех чисел. –

ответ

12

Закрепить отступа print заявления

import random 

my_randoms=[] 

for i in range (10): 

    my_randoms.append(random.randrange(1,101,1)) 

print (my_randoms) 
29
import random 
my_randoms=[random.randrange(1,101,1) for _ in range (10)] 
53

Вы можете использовать random.sample для создания списка с одним вызовом:

import random 
my_randoms = random.sample(xrange(100), 10) 

, который генерирует числа в (включительно) в диапазоне от От 0 до 99. Если вы хотите от 1 до 100, вы можете использовать это (спасибо @martineau за то, что указали мое запутанное решение):

my_randoms = random.sample(xrange(1, 101), 10) 
+24

Образец не будет включать повторяющиеся значения, которые могут или не могут иметь значения в этом случае, но стоит отметить –

+0

@JonClements, вы абсолютно правы, спасибо за внимание! :) – robertklep

+1

Для значений в диапазоне 1..100 было бы проще использовать 'random.sample (xrange (1, 101), 10)', чем понимание списка. – martineau

1
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) 
+2

Спасибо за ваш ответ. Краткое объяснение того, что он делал неправильно, по просьбе, было бы здорово. – yakobom

Смежные вопросы