Создайте набор из списка, используя {}

Иногда у меня есть список, и я хочу сделать с ним несколько заданий. Я пишу такие вещи, как:

>>> mylist = [1,2,3] >>> myset = set(mylist) {1, 2, 3} 

Сегодня я обнаружил, что из Python 2.7 вы также можете определить набор, непосредственно говоря {1,2,3} , и он представляется эквивалентным способом его определения.

Затем я задавался вопросом, могу ли я использовать этот синтаксис для создания набора из данного списка.

{list} завершается с ошибкой, потому что он пытается создать набор только с одним элементом – списком. И списки рассосаются.

 >>> mylist = [1,2,3] >>> {mylist} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list' 

Поэтому мне интересно: есть ли способ создать набор из списка, используя синтаксис {} вместо set() ?

3 Solutions collect form web for “Создайте набор из списка, используя {}”

Недавно я задал связанный с ним вопрос: Python Set: почему my_set = {* my_list} недействителен? , Мой вопрос содержит ваш ответ, если вы используете Python 3.5

 >>> my_list = [1,2,3,4,5] >>> my_set = {*my_list} >>> my_set {1, 2, 3, 4, 5} 

Он не будет работать на Python 2 (это был мой вопрос)

В основном они не эквивалентны (выражение vs function). Основная цель добавления {} в python заключалась в том, что было установлено множество понятий (например, понимание списка ), которые вы также можете создать с помощью этого набора, передав некоторые хешируемые объекты.

Поэтому, если вы хотите создать набор с помощью {} из итерации, вы можете использовать множество понятий, например:

 {item for item in iterable} 

Также обратите внимание, что пустые фигурные скобки представляют собой словарь в python, а не набор. Поэтому, если вы хотите просто создать пустой набор, правильный способ – использовать функцию set() .

Вы можете использовать

 >>> ls = [1,2,3] >>> {i for i in ls} {1,2,3} 
  • Импортируйте модуль или добавьте путь один раз навсегда в python
  • Захват аудио 192 кГц с использованием Python 3
  • Python 3- Назначить оценку
  • (Установка Python 3.6.1) SSLError: SSL: TLSV1_ALERT_UNKNOWN_CA tlsv1 предупреждение неизвестно ca
  • Возможно ли установить python 3 и 2.6 на одном ПК?
  • байты против bytearray в Python 2.6 и 3
  • Вложенные аргументы не компилируются
  • Как удалить дату и время pandas, часы и секунды
  • Python - лучший язык программирования в мире.