Вы хотите преобразовать Python, установленный в список? Использовать список(…) Конструктор и пропустите набор объекта в качестве аргумента. Например, для преобразования набора строк друзья в список, используйте выражение кода Список (друзья) .
Вот пример фрагментации кода, который преобразует набор в список, используя Список (...)
конструктор:
# Create the set of strings friends = {'Alice', 'Ann', 'Bob'} # Convert the set to a list l = list(friends) # Print both print(friends) print(l) ''' {'Ann', 'Alice', 'Bob'} ['Alice', 'Ann', 'Bob'] '''
Попробуйте в нашей интерактивной Python Shell:
Упражнение : Добавьте больше элементов на набор. Список всегда имеет тот же порядок, что и набор?
Python установлен на заказ списка
Набор определяется как неупорядоченная коллекция уникальных элементов. Ключевое слово «неупорядочено» здесь. Python не гарантирует какого-либо конкретного порядка элементов в результирующемся списке. Если вы преобразуете набор в список, элементы могут иметь произвольный порядок.
Python установлен в список хранить заказ
Но что, если вы хотите сохранить заказ при преобразовании набора в список (и, может быть, обратно)?
Я написал подробную статью по этой теме, поэтому проверьте его, если вам нужна дополнительная информация.
Создайте словарь из элементов в списке, чтобы удалить все дубликаты и преобразовать словарь обратно в список. Это сохраняет порядок исходных элементов списка.
lst = ['Alice', 'Bob', 'Bob', 1, 1, 1, 2, 3, 3] print(list(dict.fromkeys(lst))) # ['Alice', 'Bob', 1, 2, 3]
- Преобразуйте список в словарь с
Dict.Fromkeys (LST)
Отказ - Преобразуйте словарь в список
Список (Dict)
Отказ
Каждый элемент списка становится новым ключ к словарю Отказ Например, список [1, 2, 3]
становится словарь {1: нет, 2: нет, 3: нет}
Отказ Все элементы, которые происходят несколько раз, будут присвоены к тому же ключу. Таким образом, словарь содержит только уникальные ключевые ключи – не могут быть несколько равных клавиш.
В качестве значений словаря вы принимаете фиктивные значения (по умолчанию).
Затем вы преобразуете словарь обратно в список, выбрасывающие фиктивные значения.
Вот код:
>>> lst = [1, 1, 1, 3, 2, 5, 5, 2] >>> dic = dict.fromkeys(lst) >>> dic {1: None, 3: None, 2: None, 5: None} >>> duplicate_free = list(dic) >>> duplicate_free [1, 3, 2, 5]
Таким образом, вы можете просто использовать заказанный тип данных словаря.
Связанные статьи в блоге:
- Список Python для установки преобразования
- Python Удалить дубликаты из списка списков
- Список Python Удалить
- Окончательный гид по словари Python!
Python установлен в список отсортирован
Проблема : Конвертировать набор на Сортированный список Отказ
Пример : Конвертировать набор {0, 9, 8, 3}
в сортированный список [0, 3, 8, 9]
Отказ
Решение : Используйте Сортировка (...)
Метод, который создает новый Список от любого намерения вы проходите как аргумент.
Код : Давайте посмотрим на исходный код, который решает проблему!
s = {0, 9, 8, 3} l = sorted(s) print(l) # [0, 3, 8, 9]
Упражнение : Можете ли вы изменять код, чтобы элементы отсортированы в порядке убывания?
Python Set для распаковки
Альтернативный метод преобразования набора в список – распаковывать С помощью оператора звездочки *
Отказ Вы можете просто распаковать все элементы в наборе S
В пустой список, используя звездочку в качестве префикса в пустое списку, как этот [* S]
Отказ Это быстрый и питонический способ преобразования установленного в список. И имеет преимущество, что вы также можете конвертировать несколько наборов в один список, как это: [* S1, * S2, ..., * Sn]
Отказ
Вот минимальный пример:
s1 = {1, 2} s2 = {3, 4} s3 = {5, 6, 7, 8} l1 = [*s1] l2 = [*s1, *s2] l3 = [*s1, *s2, *s3] print(l1) print(l2) print(l3) ''' [1, 2] [1, 2, 3, 4] [1, 2, 3, 4, 8, 5, 6, 7] '''
Упражнение : Играйте со следующим кодом, распаковки четвертого набора в новый список L4. .
Python установлен на список сложности
Сложность времени преобразования Установить к Список линейный в количестве элементов списка. Итак, если набор имеет N Элементы, асимптотическая сложность – O (n) Отказ Причина в том, что вам нужно Итайте через каждый элемент В наборе, который является O (n) и добавьте этот элемент в список, который является O (1) Отказ Вместе сложность – это O (n) * (n * (n) .
Вот реализация псевдокода Установите список Метод преобразования:
def set_to_list(s): l = [] # Repeat n times --> O(n) for x in s: # Append element to list --> O(1) l.append(x) return s friends = {'Alice', 'Bob', 'Ann', 'Liz', 'Alice'} l = set_to_list(friends) print(l) # {'Alice', 'Liz', 'Ann', 'Bob'}
Нужно помочь понять этот фрагмент кода? Попробуйте визуализацию его в вашем браузере – просто нажмите «Далее», чтобы увидеть, какой код в памяти:
Python Добавить в список
Проблема : Учитывая список л
и набор S
Отказ Добавьте все элементы в S
в список л
Отказ
Пример : Дано это список [«Алиса», «Боб», «Энн»]
и установить {42, 21}
Отказ Вы хотите получить результирующий список [«Алиса», «Боб», «Энн», 42, 21]
Отказ
Решение : Используйте list.extend (ИТЕРАЛИТЕ)
Способ добавить все элементы в ИТЕРИТЕЛЬНО
к Список
Отказ
Код : Следующий код выполняет это.
l = ['Alice', 'Bob', 'Ann'] s = {42, 21} l.extend(s) print(l) # ['Alice', 'Bob', 'Ann', 42, 21]
Упражнение : Скачайте бесплатный Python Cheat Steets и присоединитесь к моим бесплатным сообществу Coders Python, которые любят свою торговлю.
TypeError: «SET» объект не вызывается
Иногда вы можете увидеть следующее, казалось бы, странное поведение (например, здесь ):
s = set([1, 2, 3]) l = list(s)
Вывод может дать вам следующее загадочное сообщение об ошибке:
TypeError: 'set' object is not callable
Причина в цельной вероятности – что вы перезаписали название Установить
в вашем пространстве имен. Это происходит, если вы назначаете значение для переменной под названием «Установить» Отказ Python предположит, что Установить
является переменной – и говорит вам, что вы не можете позвонить в переменные.
Вот код, который приведет к этой проблеме:
set = {1, 2} lst = [1, 2, 3] s = set(lst) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\code.py", line 3, ins = set(lst) TypeError: 'set' object is not callable '''
Вы можете исправить его, используя другое имя переменной, чтобы встроенную функцию Установить ()
не омрачен:
s0 = {1, 2} lst = [1, 2, 3] s = set(lst)
Теперь такая ошибка не бросается, потому что Установить
Имя правильно указывает на встроенный конструктор Python конструктор.
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.