2017-01-05 7 views
-2

Я довольно новичок в python (~ 6 месяцев) и чрезвычайно новичок в itertools. Я надеюсь найти некоторые рекомендации по лучшей/быстрой функции itertools для использования в процессе (не обязательно должен быть itertools, но, похоже, это лучший выбор в моих исследованиях). Я планирую выложить много циклов выше и ниже функции, поэтому стараюсь держать ее кратким ...Python Itertools Лучшая логика

У меня есть список символов в определенном порядке, и каждому символу присваивается список уникальных номеров через словарь - уникальный в том смысле, что ни один символ не будет иметь такое же число, что и другой символ, и цифры не будут повторяться. Мне нужно создать список всех уникальных комбинаций подмножества чисел каждого символа.

смотрите пример ниже:

список Входной сигнал: Р.И., WH, Р. И. Ф.

Входной словарь: {RI: [1,2], WH: [3,4,5], FA: [6]}

Выход: - 1,3,1,6 - 2,3,2,6 - 1,4,1,6 - 2,4,2,6 - 1,5,1,6 - 2,5,2,6

ответ

-1

Может быть что-то, как это будет работать для вас:

from itertools import product 

data = {'RI': [1,2], 'WH': [3,4,5], 'FA': [6]} 
inp = ['RI', 'WH', 'RI', 'FA'] 
lists = [data[x] for x in inp] 

print list(product(*lists)) 

Выход:

[(1, 3, 1, 6), 
(1, 3, 2, 6), 
(1, 4, 1, 6), 
(1, 4, 2, 6), 
(1, 5, 1, 6), 
(1, 5, 2, 6), 
(2, 3, 1, 6), 
(2, 3, 2, 6), 
(2, 4, 1, 6), 
(2, 4, 2, 6), 
(2, 5, 1, 6), 
(2, 5, 2, 6)] 
+1

Я не downvoted, но это не то, что он определяется как ожидаемый результат! – MSeifert

+0

Также, пожалуйста, не поощряйте такие вопросы, связанные с напряжением 0, путем предоставления ответов. – vaultah

+0

Спасибо, это очень близко, но не совсем там. Мне нужно, чтобы числа для каждой аббревиатуры были одинаковыми для любого выбранного выходного списка. то есть один список не должен содержать как 1, так и 2 или оба 3 и 4. Это должно привести к получению количества выходных списков. Еще раз спасибо за помощь @ Μseifert –