如果我找的地方不对,我会道歉,但是我一生无法弄清楚如何从说话中获得价值
package.json
,list[[1,2,3][4,5,6.01]]
集成到代码中,但列表除外。
list[1][2]
答案 0 :(得分:1)
您的问题是这一行:
prob = [fruits[i][1] / fsum]
您将prob
定义为具有一个值的列表,只需删除不必要的列表,例如:
prob = fruits[i][1] / fsum
那么fruits[index][2]
将是概率。
您应该考虑将while
循环替换为for
循环,例如:
while i < len(fruits):
fsum += fruits[i][1]
i += 1
i = 0
等效于:
for fruit in fruits:
fsum += fruit[1]
这可以通过生成器表达式实现:
fsum = sum(fruit[1] for fruit in fruits)
但是,如果您只是想根据相对权重(fruits[i][1]
采摘水果,那么在Py3.6中,没有setup()
的话,还有一种更简便的方法,例如:
def pick(fruits):
items, weights = zip(*fruits)
return random.choices(items, weights)[0]
在Py3.6之前,您可以执行以下操作:
def pick(fruits):
return random.choice([f for fruit in fruits for f in [fruit[0]]*fruit[1]])
答案 1 :(得分:0)
只需使用索引访问权限和索引0访问列表/数组的第一项即可:
var = fruits[index][2][0]