Как легко собрать вместе список, кортеж и множество в Python? 🔥Иногда по мере написания кода на Python получается так, что нужная нам информация хранится в переменных разного типа. Но вам нужно объединить эти данные в один список, чтобы работать дальше только с ним.
Это особенно актуально, если вы используете различные библиотеки, сторонние API и источники данных - у каждого своя структура хранения информации.
Пример задачи из реальной практики ✅ Например, вы используете стороннюю библиотеку, чтобы получать информацию из своей CRM-системы (например, Битрикс или AmoCRM). Вы запросили оттуда ID всех ваших клиентов и получили результат в виде кортежа clients_tuple. В то же время с вашего сайта вам пришел запрос, где ID новых клиентов переданы в виде списка clients_list. А из внутреннего хранилища компании вы достали с помощью специальной библиотеки ID клиентов, которые купили у вас очень давно и их данных нет в CRM-системе - результат у вас хранится в виде множества clients_set.
Это не выдуманная задача - это упрощенная версия кейса, который мы недавно встретили, когда настраивали аналитику в одной крупной компании. Ваша задача теперь - максимально просто это все собрать в один список clients и работать с ним дальше.
Как решить эту задачу? ✅ Объединение данных из разных структур (кортежей, словарей, множеств и т.д.) - довольно распространенная задача. Для ее решения существует множество способов. Например, создать пустой список и в трех циклах по каждой структуре добавлять туда информацию.
Однако, очевидно, что это очень неоптимальный и «некрасивый» способ решения данной задачи.
Для «красивого» решения можно воспользоваться полезной фичей языка Python - распаковкой.
Операция распаковки (*) позволяет «вытащить» элементы из каждой структуры данных, избавившись тем самым от ограничения каждой из структур и получив просто «голые» элементы. Распаковав таким образом каждую структуру, остается только объединить все получившиеся элементы в один список.
Сделать это можно следующим образом:
clients = [*clients_tuple, *clients_list, *clients_set]
Заключение ✅ Согласитесь, изящно? Python прекрасен такими конструкциями - в одну строку можно сделать довольно сложные операции.
Хотите освоить Python с нуля? Приходите на наш бесплатный курс «Основы Python»!
👉🏻 Записаться на курс по Python 👈🏻