Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据其他列表中的编号重复列表项_Python - Fatal编程技术网

Python 如何根据其他列表中的编号重复列表项

Python 如何根据其他列表中的编号重复列表项,python,Python,我有两个整数列表。我想从另一个列表中重复一个列表成员的时间。我尝试使用zip()函数和下面的代码,但我得到了相同的错误 'TypeError:'int'对象不可调用' 这是我的密码- def predict_from_distribution(distribution, range): classes = [0, 1, 2, 3, 4, 5] summation = np.cumsum(distribution) results = [] uniform_sam

我有两个整数列表。我想从另一个列表中重复一个列表成员的时间。我尝试使用zip()函数和下面的代码,但我得到了相同的错误

'TypeError:'int'对象不可调用'

这是我的密码-

def predict_from_distribution(distribution, range):

    classes = [0, 1, 2, 3, 4, 5]
    summation = np.cumsum(distribution)
    results = []
    uniform_samples = np.random.uniform(0, 1, range)
    iterations = np.multiply(distribution, len(uniform_samples))
    iterations = [int(num) for num in iterations]
    for i in range(len(classes)):
        for x in range(iterations[i]):
            results.append(classes[i] * x)
    return print(results)


predict_from_distribution([0.2, 0.1, 0.25, 0.15, 0.25, 0.05], 50)

通过使用
range
作为参数名,您已经用值
50
覆盖了内置方法
range

因此,现在调用
range(…)
与编写
50(…)
一样-这就是为什么会出现错误消息
TypeError:“int”对象不可调用的原因

如果您使用其他名称作为参数名(例如
R
),则代码工作正常

import numpy as np

def predict_from_distribution(distribution, R):

    classes = [0, 1, 2, 3, 4, 5]
    summation = np.cumsum(distribution)
    results = []
    uniform_samples = np.random.uniform(0, 1, R)
    iterations = np.multiply(distribution, len(uniform_samples))
    iterations = [int(num) for num in iterations]
    for i in range(len(classes)):
        for x in range(iterations[i]):
            results.append(classes[i] * x)
    return print(results)


predict_from_distribution([0.2, 0.1, 0.25, 0.15, 0.25, 0.05], 50)

顺便说一下,这就是我试图用代码实现的,即当实验重复“总”次数时,预测有偏差骰子的类别。(不使用任何numpy随机选择或其他分布)

将numpy作为np导入

def根据_分布预测_(分布,总计):


从分布预测(0.2,0.1,0.25,0.15,0.25,0.05,50)

不要使用范围作为参数变量名称我理解我的错误。谢谢:)
classes = [0, 1, 2, 3, 4, 5]
summation = int(sum(distribution))
if not summation == 1:
    print('Error : The sum of the probabilities do not add up to 1')
results = []
iterations = np.multiply(distribution, total)
iterations = [int(num) for num in iterations]
for i in range(len(classes)):
    for x in range(iterations[i]):
        results.append(classes[i])
return print(results)