2016-10-08 1 views

ответ

0

Это один:

l = set(set(x) for x in l) 

Set является unhashable так что это не возможно, если тип set требуется. Но неизменяемые реализации набора могут быть хешируемыми, если они обеспечивают метод __hash__.

+0

Это не работает, потому что наборы unhashable типов. Этот вопрос немного сложнее. – Philliproso

+0

Эта команда не работает, так как у меня есть подсписок в списке. Он вернет ошибку: TypeError: unhashable type: 'set'. Есть ли другой способ сделать это? –

+0

@Philliproso Вы правы, я забыл об этом. –

0

Это невозможно, так как наборы являются неотъемлемыми объектами. Это означает, что вы не можете вводить наборы множеств. Однако вы можете перевернуть список списков в список наборов с list(map(set,l)).

+0

, который работает, большое спасибо –

0

Ближайшая вещь, чтобы получить то, что вы пытаетесь сделать. Создать набор кортежей, которые были однажды установлены. У вас нет набора наборов, потому что наборы не хешируются.

l=set([tuple(set(sublist)) for sublist in l]) 
0

Наборы не hashable, но frozensets являются:

l = set(frozenset(x) for x in l) 
Смежные вопросы