【发布时间】:2021-06-21 22:37:28
【问题描述】:
我正在尝试根据数字序列计算该值,并找出该值与随机生成的数字序列相比如何。要计算序列的值,我有 random_lineup_value 函数,它工作正常。要随机生成 1000 个序列并计算每个序列的值,我有 random_lineup_values 函数。
但是,问题是我无法将原始值与这些随机生成的值进行比较,因为函数的输出不可下标——或者我无法引用此输出中的特定位置。我正在尝试遍历 random_lineup_values 的有序输出,直到初始存储值等于存储在 1000 个值列表中的数字。我尝试将 random_lineup_value 的输出作为列表返回,在函数中使用 yield 而不是 return,并在调用函数时将输出分配给变量,然后尝试遍历存储在新变量,但这些方法都不适用于 Python。知道如何在 Python 中执行此操作吗?
import random
def lineup_value(order):
value = 0
for i in range(0,6):
if order[i] >= order[8]:
value = value + 4
if order[i] >= order[7]:
value = value + 4
for i in range(0,5):
if order[i] >= order[6]:
value = value + 4
for i in [0, 1, 3]:
if order[i] >= order[5]:
value = value + 4
if order[i] >= order[4]:
value = value + 4
if order[3] >= order[2]:
value = value + 4
if order[1] >= order[2]:
value = value + 4
return value
def random_lineup_values(order):
bootstrapped_values = []
for j in range(0, 1000):
random.shuffle(order)
bootstrapped_values.append(lineup_value(order))
return list(bootstrapped_values.sort)
random.seed(10)
batting_order = [115, 101, 76, 125, 120, 135, 88, 94, 97]
value = lineup_value(batting_order)
print(str(value) + ' is the value of the lineup')
sorted1 = random_lineup_values(batting_order)
print(sorted1)
p = 0
number = sorted1[p]
while int(number) < int(value):
p = p + 1 print(p)
print(str((1000 - p) / 10) + ' percent of random lineup values would be better than the lineup')
【问题讨论】:
-
请修正您的代码格式。
-
这是你得到的错误:
'builtin_function_or_method' object is not iterable..?