Python обеспечивает большую гибкость для обработки различных типов структур данных. Преобразование из одного типа данных в другой не требует усилий. Наборы — полезный тип данных для сохранения нескольких элементов в одной переменной. Словари используются для сохранения данных в парах ключ-значение.
Преобразование набора Python в словарь с методом fromkeys()
Чтобы преобразовать множество Python в словарь, используйте метод fromkeys(). fromkeys() — это встроенная функция, которая создает новый словарь из заданных элементов со значением, предоставленным пользователем. Словарь имеет структуру данных ключ-значение. Итак, если мы передаем ключи как значения Set, то нам нужно передавать значения самостоятельно.
Синтаксис
|
1 |
dictionary.fromkeys(keys, value) |
Параметры
- Параметр keys является обязательным, и это итерация, указывающая ключи нового словаря.
- Параметр value является необязательным и является значением для всех ключей. Значение по умолчанию — None.
Реализация преобразования set в dict
Определите начальный набор и распечатайте набор и его тип данных. Используйте метод dict.fromkeys() и передайте набор и значение 0 в качестве аргумента. Помните, что для создания словаря нужны ключи и значения. Мы предоставляем ключи из заданных значений, но нам нужно передавать значения самостоятельно, и мы выбрали 0 в качестве значения каждого ключа.
|
1 2 3 4 5 6 7 8 9 10 |
i_set = {'Vlad Tepes', 'Alucard', 'Trevor', 'Isaac', 'Carmilla'} print(i_set) print(type(i_set)) # converting set to dictionary dictionary = dict.fromkeys(i_set, 0) # printing final result and its type print(dictionary) print(type(dictionary)) |
Вывод:
|
1 2 3 4 |
{'Alucard', 'Isaac', 'Trevor', 'Vlad Tepes', 'Carmilla'} <class 'set'> {'Alucard': 0, 'Isaac': 0, 'Trevor': 0, 'Vlad Tepes': 0, 'Carmilla': 0} <class 'dict'> |
В выходном словаре есть все ключи из элементов Set, а значения равны 0. 0 — это значение по умолчанию, которое мы передали в понимании множества. Понимание работает и для списков; это наиболее эффективный метод создания словаря из набора или любой последовательности.
Обратите внимание, что все значения являются ссылками на одно значение по умолчанию, которое вы передали в dict.fromkeys(), поэтому будьте осторожны, когда это значение по умолчанию является изменяемым объектом. Это один из способов создать словарь из Set в Python.
Комбинация zip() и dict()
Метод Python dict() можно использовать для получения входных параметров и преобразования их в словарь. Нам также нужно использовать функцию zip() для группировки ключей и значений, которая в конечном итоге становится парой ключ-значение словаря.
|
1 2 3 4 5 6 7 8 9 |
set_keys = {'Vlad Tepes', 'Alucard', 'Trevor', 'Isaac'} set_values = {1, 2, 3, 4} # converting set to dictionary dictionary = dict(zip(set_keys, set_values)) # printing final result and its type print(dictionary) print(type(dictionary)) |
Вывод:
|
1 2 |
{'Vlad Tepes': 1, 'Isaac': 2, 'Trevor': 3, 'Alucard': 4} <class 'dict'> |
Метод zip() возвращает итерируемый объект, и с помощью метода dict() мы преобразуем этот итерируемый объект в словарь.
Преобразование с использованием понимания словаря
Чтобы преобразовать set в dict, используйте понимание словаря. Понимание словаря — это способ создания словарей из определенных выражений.
Выражение понимания словаря: {ключ: значение для(ключ, значение) в итерации}
|
1 2 3 4 5 6 7 8 9 10 |
i_set = {'Vlad Tepes', 'Alucard', 'Trevor', 'Isaac', 'Carmilla'} print(i_set) print(type(i_set)) # converting set to dictionary dictionary = {element: 'Castlevania' for element in i_set} # printing final result and its type print(dictionary) print(type(dictionary)) |
Вывод:
|
1 2 3 4 5 |
{'Trevor', 'Vlad Tepes', 'Alucard', 'Carmilla', 'Isaac'} <class 'set'> {'Trevor': 'Castlevania', 'Vlad Tepes': 'Castlevania', 'Alucard': 'Castlevania', 'Carmilla': 'Castlevania', 'Isaac': 'Castlevania'} <class 'dict'> |
В этом примере значение, предоставленное пользователем, — «Castlevania». Следовательно, значения для всех ключей словаря — Castlevania. Вот и все, что нужно для преобразования set в dict в Python.
Заключение
Вы можете использовать любой из трех подходов, таких как fromkeys(), комбинацию zip() и dict() или понимание словаря в зависимости от ваших требований, чтобы преобразовать множество в словарь или создать словарь из значений набора.

