Python:计算另一个函数的输出的函数

2024-09-28 19:24:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力学习Python,我有一个练习,其中我有一个生成随机数的函数,我必须创建另一个函数来计算一个数在调用随机生成器1000次后在输出中出现的次数。 这就是我目前所做的:

from random import *

def gerador_aleatorio():
    return randint(0, 10)

def histograma():
    num = {range(gerador_aleatorio())}
    for n in range(gerador_aleatorio()):
        return num
    hist = {}
    for i in num: 
        hist[i] = hist[i] + 1
    return hist

但是输出不是我想要的。看起来是这样的:

=>;组织图()

=>;{范围(0,7)}

当我在寻找这样的东西时:

0-6个

第1-894页

第2-92页

第3-82页

第4-53页

第5-89页

6-85岁

第7-28页

第8-51页

第9-81页

10-92年

我无法将第一个函数的输出与第二个函数的输出“连接”,也看不到如何正确地进行连接。你知道吗


Tags: 函数infromimportgtforreturndef
2条回答

使用*导入时要小心,因为您可能会遇到名称冲突,最好只导入方法并将其作为method.func\u名称()**

import random

def gerador_aleatorio():
    return random.randint(0, 10)

def histograma():
    hist = {}

    for count in range(int(input('Enter amount of rand nums: '))):
        num = gerador_aleatorio()
        hist.setdefault(num, 0)
        hist[num] += 1

    for number in hist: 
        print(str(number) + ': ' + str(hist[number]))

histograma()

你可以把所有的数字都存储在字典里,每次出现都要数一数。你知道吗

您可以使用collections.Counter()简单地构造直方图,如下所示:

import collections

def histograms():
    return  collections.Counter(gerador_aleatorio() for i in xrange(1000))

>>> histograms()
>>> {3: 99, 10: 99, 0: 97, 9: 95, 1: 88, 2: 88, 5: 88, 8: 88, 7: 87, 4: 86, 6: 85}

上面的代码片段所做的是,通过调用random number generator函数获取随机1000值,并创建函数返回的1000值的直方图,同一函数的另一个更简单的实现可以看作:

def histograms():
    a = []
    for i in xrange(1000):
        a.append(gerador_aleatorio())
    return collections.Counter(a)

其中我们将所有1000个随机数存储在一个列表中,然后根据给定的列表创建一个直方图。你知道吗

相关问题 更多 >