我遇到的问题似乎无法解决。
我有两个表:table1和table2:
table1=[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
和
table2=[0 for i in range (21)]
我想跑:
import random
for d1 in range(21):
table2[d1] = random.expovariate(gamma_val)
但如果table1 = 1
中的值,table2
中的该位置应运行random.expovariate(x)
,
如果不是1,则运行random.expovariate(y)
。
答案 0 :(得分:2)
如果我理解正确,你不会只是:
import random
for d1 in range(21):
if table1[d1]: #1 evaluates to true in python
table2[d1] = random.expovariate(x)
else:
table2[d1] = random.expovariate(y)
答案 1 :(得分:1)
table2 = []
for d1 in table1:
value = x if d1 == 1 else y
table2.append(random.expovariate(value))
答案 2 :(得分:1)
另一种选择可能是:
import random
options = [y, x]
for d1 in range(21):
table2[d1] = random.expovariate(options[table1[d1]])
我使用值(0
或1
)作为options
列表的索引。
答案 3 :(得分:1)
如果你想让table2与table1的大小相同,你可以(而且应该)使用这样的东西:
table2 = [random.expovariate(x if d1 else y) for d1 in table1]