Выберите случайные целые числа из элементов списка того же индекса и сгенерируйте список - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть два списка 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' не вызывается

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018

Вы можете использовать random.choice (документы здесь ).

Возвращает случайный элемент из непустой последовательности 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 голосов
/ 03 ноября 2018

Вы вызываете random, как будто это функция, хотя на самом деле это модуль. Вам нужно использовать random.choice, чтобы выбрать один из двух вариантов:

value = random.choice([a[i],b[i]])
0 голосов
/ 03 ноября 2018

Прежде всего, вам нужно импортировать случайный модуль.

import random

Тогда вы можете вызвать любой его метод:

random.random()

Кроме того, вы должны выбрать random.choice():

value = random.sample([a[i],b[i]], 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...