Все возможные кортежи

#python #itertools

#python #python-itertools

Вопрос:

 possible_frequency = [0,1,2,3,4,5,6,7,8]
clamp_range = list(xrange(0, 51, 1))
possible_clamp_levels = int(len(clamp_range)*len(possible_frequency))
print possible_clamp_levels
  

Я хочу найти способ распечатать все возможные кортежи (459), используя possible_frequency и clamp_range
это, (0,0),(0,1), (0,2).....(8, 50)

Есть ли пакет в python, который позволил бы мне это сделать.

Это сделает

возможные кортежи = []

 for a in range(0, len(possible_frequency)):
    for b in range(0, len(clamp_range)):
        test = (possible_frequency[a], clamp_range[b])
        possible_tuples.append(test)
print possible_tuples
  

Мне нужен более сложный способ.

Ответ №1:

Вы можете использовать itertools.product() :

 from itertools import product

list(product(possible_frequency, clamp_range))
  

Ответ №2:

 import itertools
for set in itertools.product(possible_frequency,xrange(0, 51, 1)):
    print set
  

продукт используется для вычисления декартова произведения входных итераций.itertools Product