Python: случайно смешать два списка - PullRequest
0 голосов
/ 26 ноября 2018

У меня возникли проблемы при смешении двух списков, чтобы создать новый список одинаковой длины.

До сих пор я случайно выбрал два списка из группы списков, которые называются parent 1 и parent 2. Этоэто то, что у меня есть, но строка output_list не работает.

parent1 = listname[random.randint(1,popsize)]
parent2 = listname[random.randint(1,popsize)]
output_list = random.choice(concatenate([parent1,parent2]), length, replace=False)
print(output_list)

Результат, который я хочу получить: если parent1 = [1,2,3,4,5] и parent2 = [6,7,8,9,10], то возможный результат может быть [1,2,3,9,10] или[1,7,2,5,6] или [1,2,7,4,5].

У кого-нибудь есть идеи?

(контекст - это два набора генов, которые размножаются, образуя ребенка со смесью генов родителей)

1 Ответ

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

Вы можете использовать random.shuffle после объединения parent_1 и parent_2 и выбрать фрагмент такой же длины, как parent_1:

import random

parent_1 = [1,2,3,4,5]
parent_2 = [6,7,8,9,10]

c = parent_1 + parent_2
random.shuffle(c)

result = c[:len(parent_1)]
print(result) # [4, 5, 10, 6, 9]
...