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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从相同索引的列表元素中选择随机整数并生成列表相关的知识,希望对你有一定的参考价值。

我有两个列表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'对象不可调用

答案

你可以使用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],您可以获得没有列表的元素。

另一答案

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

value = random.choice([a[i],b[i]])
另一答案

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

import random

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

random.random()

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

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

以上是关于从相同索引的列表元素中选择随机整数并生成列表的主要内容,如果未能解决你的问题,请参考以下文章

随机整数列表

随机优先与权重——非平均概率的选择工具

python随机生成近100年内的200个人的生日,统计同一天出生的人数,并按照人数的多少从高到底排序?

查找列表中相同元素的索引号

产生一个随机的整数序列... 30次

python中怎么从一个列表中可重复的随机抽取元素构成新列表?