Получение декартового произведения списков в Python

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
Одной из общих задач в программировании является получение декартового произведения из нескольких списков. Декартово произведение списков — это
Одной из общих задач в программировании является получение декартового произведения из нескольких списков. Декартово произведение списков — это набор всех возможных комбинаций элементов из каждого списка.
Предположим, есть несколько списков:
lists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
Требуется получить декартово произведение этих списков, которое будет выглядеть так:
[(1, 'a', 4), (1, 'a', 5), (1, 'b', 4), (1, 'b', 5), (2, 'a', 4), (2, 'a', 5), ...]
Это можно сделать с помощью модуля itertools
, который предоставляет функцию product
. Эта функция возвращает декартово произведение входных итерабельных объектов как кортежи.
import itertools
lists = [
[1, 2, 3],
['a', 'b'],
[4, 5]
]
result = list(itertools.product(*lists))
print(result)
Здесь звёздочка *
используется для распаковки списков в аргументы функции product
.
Таким образом, с помощью модуля itertools
и его функции product
можно легко получить декартово произведение нескольких списков в Python. Это решение более предпочтительно, чем использование вложенных циклов, так как оно более эффективно и читабельно.
Добавить комментарий