Я работаю на Python. У меня есть большой список L = [X_{1}, X_{2}, ....,X_{n}]
, где каждый X_{i}
- это набор. Возможно, что для некоторых отдельных индексов i, j
имеем X_{i} = X_{j}
. Я хочу создать список (или набор) L_{1} = [Y_{1}, Y_{2}, ... ,Y_{k}]
, так что множество (в математическом смысле) {X_{1},..., X_{n}} = {Y_{1}, ..., Y_{k}}
и L_{1}
имеет наименьшую возможную длину (другими словами L_{1}
не имеет повторений).Набор из списка наборов
Для последующих применений мне необходимо получить доступ к элементам L_{1}
. Поэтому я не могу использовать опцию frozenset
.
set(L)
имеет значение TypeError: unhashable type: 'set'
.
Я думаю, что смогу его решить, используя контурную конструкцию, но мне интересно, есть ли более элегантное решение этой проблемы в Python.
Каким образом 'набор (L)' не работает? Как выглядит ваш список? – khelwood
@khelwood: потому что наборы изменяемы и не могут быть сохранены в другом наборе. –
@MartijnPieters (я знал это, я просто подумал, что плакат должен был дать лучшее описание проблемы, чем «не выполняет работу».) – khelwood