从相同索引的列表元素中选择随机整数并生成列表

问题描述 投票:0回答:3

我有两个列表ab,我需要选择一个随机元素a[i]b[i]并生成z

a = [1, 0, 1, 1, 0, 1]
b = [1, 1, 0, 1, 0, 0]

z = [1, 0, 1, 1, 0, 0]

我使用了下面提到的代码:

import random
z = []
for i in range(6):
    value = random(a[i],b[i])
    z.append(value)
print z

我收到以下错误:

TypeError:'module'对象不可调用

python list random
3个回答
1
投票

你可以使用random.choice(docs here)。

从非空序列seq返回一个随机元素。

它从值列表中选择一个值。对于每次迭代,您只需创建一个a[i]b[i]列表。

for i in range(6):
    value = random.choice([a[i],b[i]])
    z.append(value)
print( z)

# [1, 1, 1, 1, 0, 0]

另一个选择是使用random.sample这里k=1[a[i],b[i]]是如下人口

返回从总体序列或集合中选择的k长度的唯一元素列表

value = random.sample([a[i],b[i]], 1)
z.append(value[0])

这里使用value[0],因为value是一个包含单个元素的列表,因此通过使用[0],您可以获得没有列表的元素。


0
投票

你把random称为它是一个函数,实际上它是一个模块。您需要使用random.choice来选择以下两个选项之一:

value = random.choice([a[i],b[i]])

0
投票

首先,您必须导入随机模块。

import random

然后你可以调用它的任何方法:

random.random()

此外你应该选择random.choice()

value = random.sample([a[i],b[i]], 1)
© www.soinside.com 2019 - 2024. All rights reserved.