2017-02-18 46 views
2

我已经导入了随机数并生成了列表,但我必须乘以该列表中的所有整数并打印结果。 但是通过这个设置,我只是一次又一次地得到一堆数字。我尝试过其他设置,但没有一个似乎适用于此特定问题。 它应该是如果(i)代表列表中的数字我我*我...等等,然后只是打印结果?如何将随机列表中的整数相乘

listi=[] 

    for i in range(50): 
     listi.append(random.randint(5,70)) 
     teljari=1 
     listi=listi 
     for x in listi: 
      teljari*=x 
      print(teljari) 
+0

这行'listi.append(random.randint(5,70))'呢?为什么'(5,70)'? – RomanPerekhrest

+0

每次添加新的随机数时,您都在计算产品。而且,您每次打印子产品时都会打印一个子产品。这就是为什么你看到很多数字。此外,'listi = listi'行没有任何用处。 – chapelo

+0

listi.append(random.randint(5,70))它在那里,所以范围内的50个数字是5和70之间的随机数字 – Steini

回答

1

它继续打印所有数字,因为您的打印功能位于for循环中,所以每当循环达到下一个整数时,它都会打印产品。

from random import randint 
listi = [] 

for x in range(50): 
    listi.append(randint(5,70)) 

teljari = 1 

for i in listi: 
    teljari *= i 

print(teljari) 

我认为这应该按预期工作。

+1

Thanx很多,我学习Python,所以这对我来说是一个很好的帮助 – Steini

4

更多pythonesque将

random_numbers = random.sample(range(5, 70), 50) 
teljari = 1 
other_list = [i * teljari for i in random_numbers] 

这样你可以获得所有的随机数与一个命令,然后你可以用任何你想要的过程中繁殖。

2

这会为你工作: -

import random 

uniqueRandomNumberList = random.sample(range(5,70), 50) 

reduce(lambda x, y: x*y,uniqueRandomNumberList) 
+0

我只是在python 3中添加,reduce必须从'functools'中导入。 –

+0

好的,谢谢兄弟! –