Pairwise crossproduct в Python

Как я могу получить список пар перекрестных продуктов из списка произвольно длинных списков в Python?

пример

a = [1, 2, 3] b = [4, 5, 6] 

crossproduct(a,b) должен давать [[1, 4], [1, 5], [1, 6], ...] .

3 Solutions collect form web for “Pairwise crossproduct в Python”

Вы ищете itertools.product, если вы находитесь (по крайней мере) Python 2.6.

 >>> import itertools >>> a=[1,2,3] >>> b=[4,5,6] >>> itertools.product(a,b) <itertools.product object at 0x10049b870> >>> list(itertools.product(a,b)) [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)] 

Поскольку вы попросили список:

 [(x, y) for x in a for y in b] 

Но вы можете избежать накладных расходов на список, если вы просто перебираете их, используя вместо этого генераторы:

 ((x, y) for x in a for y in b) 

Работает одинаково в цикле for но не приводит к созданию list .

Используя генераторы, нет необходимости в itertools, просто:

 gen = ((x, y) for x in a for y in b) for u, v in gen: print u, v 
  • Минимальный список в Python с None?
  • Каков наиболее эффективный способ перебора списка в python?
  • Разница между последовательными элементами в списке
  • Сгладить список кортежей в Python
  • python - получить список первого индекса кортежей?
  • Python List Slicing с None как аргумент
  • удаление экземпляра объекта в списке python
  • Преобразование списка списков в список целых чисел
  • Почему я не могу присоединиться к этому кортежу в Python?
  • Python: проверить вхождения в списке по значению
  • Python запутанная функция ссылки
  •  
    Interesting Posts for Van-Lav

    Запуск задания с использованием потоковой передачи данных и mrjob: PipeMapRed.waitOutputThreads (): сбой подпроцесса с кодом 1

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

    Tweepy: как я могу найти более 100 имен пользовательских экранов

    Ошибка Python Cmd / Powershell "Traceback (последний последний звонок)"

    Разрешения для объектов с доступом только для чтения для анонимных пользователей в Django Rest Framework

    Поиск соответствия данных из одного набора данных в другом

    Как настроить pymssql с поддержкой SSL на Ubuntu 16.04 LTS?

    Как установить pip в arch linux?

    Выражение генератора никогда не вызывает StopIteration

    В чем разница между «./» и «../» при использовании os.path.isdir ()?

    Использование virtualenv с пробелами в пути

    Использование ProcessBuilder для выполнения сценария python с параметрами командной строки

    Эффективное выполнение нескольких замещений строк в Python

    Эквивалент Paste R на Python

    Как закрепить полярный участок в pylab / pyplot

    Python - лучший язык программирования в мире.