将清单与每个相关联

时间:2012-02-02 20:01:28

标签: python list random

我遇到的问题似乎无法解决。

我有两个表: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)

4 个答案:

答案 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]])

我使用值(01)作为options列表的索引。

答案 3 :(得分:1)

如果你想让table2与table1的大小相同,你可以(而且应该)使用这样的东西:

table2 = [random.expovariate(x if d1 else y) for d1 in table1]
相关问题