У меня есть список таких списков:
l_of_l = [[1,2,3], [4,5],[6]]
, и я хочу заменить два элемента случайным образом перекрестным списком, например:
perm(l_of_l) = [[1, 4, 3], [2, 5], [6]] # 2 and 4 replaced
perm(l_of_l) = [[6, 2, 3], [4, 5], [1]] # 6 and 1 replaced
#etc.
Длина списка должен быть сохранен, а замена в том же списке отклонена.
perm(l_of_l) = [[1, 2], [4, 5], [3, 6]] # illegal permutation - the lenght of lists changed
perm(l_of_l) = [[2, 1, 3], [4, 5], [6]] # illegal permutation - 1 and 2 are from the same list
Меня пытались использовать itertools.permutaion, но он не работает:
# permutations using library function
from itertools import permutations
# Get all permutations of lists
perm = permutations([[1, 2, 3], [4, 5], [6]])
# Print the obtained permutations
for i in list(perm):
print (i)
#output:
#([1, 2, 3], [4, 5], [6])
#([1, 2, 3], [6], [4, 5])
#([4, 5], [1, 2, 3], [6])
#([4, 5], [6], [1, 2, 3])
#([6], [1, 2, 3], [4, 5])
#([6], [4, 5], [1, 2, 3])
Что вы предлагаете для меня?
Заранее спасибо!