Извлечение элементов из списка с повторяющимися элементами

#python-3.x #list #set #combinations

Вопрос:

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

Например, для=[1, 1, 2, 3, 4, 4, 5, 5]

от a я хочу получить что-то вроде:

 [(1,2),[1,3,4,4,5,5]],[(1,2,3),[1,4,4,5,5],...  

Я пробовал использовать комбинацию, но большинство результатов не имеют отношения к проблеме. Кто-нибудь может помочь?

Комментарии:

1. Я просто хочу подтвердить, что ожидаемый ответ будет таким же, если я поставлю 1 на ie a = [1, 1, 2, 3, 4, 4, 5, 5, 1]

2. Привет, абсолютно не представляю, каков желаемый результат. не могли бы вы предоставить более подробную информацию?

Ответ №1:

информация, которую вы дали, скудна, но вот отрывок из того, что я понял

 a=[1, 1, 2, 3, 4, 4, 5, 5] result=[] for i in range(1,7):  b=a.copy()  sub_tuple=[]  for j in range(1,i):  x=b.pop(b.index(j))  sub_tuple.append(x)  result.append([tuple(sub_tuple), b]) print(result[2:]) gt;gt;gt; [[(1, 2), [1, 3, 4, 4, 5, 5]], [(1, 2, 3), [1, 4, 4, 5, 5]], [(1, 2, 3, 4), [1, 4, 5, 5]], [(1, 2, 3, 4, 5), [1, 4, 5]]]  

Комментарии:

1. Спасибо вам за ваш ответ. На самом деле я думал об использовании комбинаций, чтобы получить эту структуру, но было так много значений, которые мне не требовались. Это определенно имеет смысл и отвечает моим требованиям.