2015-10-26 5 views
-1

У меня есть списков каждый содержит подсписковПроизвольно выберите подмножества из списков подсписков

L1 = [[sub11],[sub12],[sub13]] 
L2 = [[sub21],[sub22],[sub23]] 
L3 = [[sub31],[sub32],[sub33]] 
L4 = [[sub41],[sub42],[sub43]] 

Я хочу, чтобы случайно выберите подсписки из каждого списка, чтобы создать окончательный списков

например, окончательные списки могут быть похожими

final1 = [[sub13],[sub21],[sub33],[sub42]] 
final2 = [[sub12],[sub23],[sub31],[sub43]] 
final3 = [[sub11],[sub22],[sub32],[sub41]] 

Спасибо за вашу помощь

+0

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

ответ

0

Вы можете Рандомайз каждая с random.sample(), а затем zip() результат:

>>> import random 
>>> L1 = [['sub11'],['sub12'],['sub13']] 
>>> L2 = [['sub21'],['sub22'],['sub23']] 
>>> L3 = [['sub31'],['sub32'],['sub33']] 
>>> L4 = [['sub41'],['sub42'],['sub43']] 
>>> all_lists = [L1, L2, L3, L4] 
>>> random_lists = map(list, list(zip(*(random.sample(item, len(item)) for item in all_lists)))) 
>>> for i in random_lists: 
...  print(i) 
... 
[['sub13'], ['sub22'], ['sub33'], ['sub43']] 
[['sub11'], ['sub23'], ['sub32'], ['sub42']] 
[['sub12'], ['sub21'], ['sub31'], ['sub41']] 
0
>>> L1 = [12, 13, 11] 
>>> L2 = [22, 23, 21] 
>>> L3 = [31, 32, 33] 
>>> L4 = [41, 42, 43] 
>>> from random import shuffle 
>>> L = [L1, L2, L3, L4] 
>>> for item in L: 
...  shuffle(item) 
... 
>>> F = zip(*L) 
>>> final1, final2, final3 = F 
>>> final1 
(12, 22, 31, 41) 
>>> final2 
(13, 23, 32, 42) 
>>> final3 
(11, 21, 33, 43) 
0
import random 

L1 = [['sub11'],['sub12'],['sub13']] 

L2 = [['sub21'],['sub22'],['sub23']] 

L3 = [['sub31'],['sub32'],['sub33']] 

L4 = [['sub41'],['sub42'],['sub43']] 


final = [] 
for L in [L1, L2, L3, L4]: 
    final.append(random.sample(L, 1)[0]) 

print final 

Выходные:

[['sub11'], ['sub22'], ['sub31'], ['sub42']] 

Повторите столько раз, так как вам нужно построить больше ra ndom списки.

Смежные вопросы