计算python循环中的数字

时间:2012-10-28 21:19:00

标签: python loops for-loop while-loop

我试图得到一个循环,告诉我从0到2(不包括2)的50个随机整数数组中的0的数量。然后,它将再次计算所获得的零的随机整数。

我尝试过这样做但是我在初级阶段陷入困境并且令人沮丧,所以任何帮助都会受到高度赞赏。

from numpy.random import randint

n = 50

R = randint(0,2,n)

for i in R:
    True = 0
    print array(True)

但是它没有返回一个阵列,我也不知道如何计算0的数量,因为我不能像往常那样使用len函数。

我尝试使用while循环但遇到了类似的问题

5 个答案:

答案 0 :(得分:4)

由于你的数组只包含1和0,所以零的数量显然是

num_zeroes = len(R) - sum(R)

答案 1 :(得分:2)

要计算0中的R你可以做的事情

sum(not n for n in R)

这样做的好处是,即使数组中只有10以外的数字,它也能正常工作。


感谢eryksun指出这一点:你也可以做到

numpy.sum(R == 0)

答案 2 :(得分:0)

生成数组:

random_list = [random.randint(0,2) for x in xrange(50)]

0的数字:

num_zeros = sum( 1 for x in random_list if x==0 )

再次生成数组:

random_list = [random.randint(0,2) for x in xrange(num_zeros)]

答案 3 :(得分:0)

也许这是你正在寻找的东西:

from numpy.random import randint

n = 50

R = randint(0,2,n)

def get_number_of_zeros(x):
    return sum(0 == ele for ele in x)

while(len(R) > 0):
    number_of_zeros = get_number_of_zeros(R)
    print 'number of zeros is {}'.format(number_of_zeros)
    R = randint(0, 2, number_of_zeros)

结果:

number of zeros is 25
number of zeros is 11
number of zeros is 7
number of zeros is 4
number of zeros is 1
number of zeros is 1
number of zeros is 1
number of zeros is 0

答案 4 :(得分:0)

嗯,不需要循环和总和。如果你有一个整数数组,你可以计算这样的零(或任何其他个别数字)的数量:

>>> R = [ 0, 1, 5, 0, 0]
>>> print("There are", R.count(0), "zeros")
There are 3 zeros