Задача родительской программы - генерировать перестановки и выяснять, с какой вероятностью они генерируются процессом генерации. Я хотел бы помочь в сортировке идентичных перестановок по списку.
Таким образом, каждый элемент в списке имеет форму [[[a,b,c],[x]],[[d,e,f],[y]],....]
, где x представляет вероятность, с которой [a,b,c]
генерируется в одном цикле. У меня есть один из моих выходов ниже.
[[[1, 2, 3], [0.125]],[[1, 2, 3], [0.125]],[[2, 3, 1], [0.125]],[[2, 1, 3], [0.125]],[[3, 1, 2], [0.125]],[[1, 2, 3], [0.125]],[[1, 3, 2], [0.125]],[[1, 2, 3], [0.125]]]
Когда мой окончательный список содержит [[a,b,c],[x]]
и [[a,b,c],[y]]
, мне нужно, чтобы он стал [[a,b,c],[x+y]]
. Как мне это сделать?
Я попробовал следующий код. Список вывода называется master_list.
for i in range(0,len(master_list)):
count = []
for j in range(i+1,len(master_list)):
if master_list[i][0] == master_list[j][0]:
count.append(j)
master_list[i][1][0] += master_list[j][1][0]
else:
continue
print('count for element',master_list[i][0], 'at number', i, 'is', count)
for k in count:
print(k)
for c in range(0,len(count)):
master_list.remove(master_list[k])
print('master_list now is',master_list)
count[c] += -1
Распечатки были только для меня, чтобы проверить. Однако проблема, с которой я столкнулся, заключалась в том, что после каждой операции .remove () индексы списков изменялись, поэтому цикл прерывался.