从相同索引的列表元素中选择随机整数并生成列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从相同索引的列表元素中选择随机整数并生成列表相关的知识,希望对你有一定的参考价值。
我有两个列表a
和b
,我需要选择一个随机元素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)
以上是关于从相同索引的列表元素中选择随机整数并生成列表的主要内容,如果未能解决你的问题,请参考以下文章