Форум сайта python.su
4
Добрый день! Есть список вида
[ [ ['способ','способа','способу','способы'],['изготовления'],['продукта','продуктов'] ], [ ['метод','методы','методов'],['доставки','доставок'],['товара','товаров'] ] ]
[ ['способ','изготовления','продукта'], ['способа','изготовления','продукта'], ['способу','изготовления','продукта'], ['способ','изготовления','продуктов'], ['способы','изготовления','продукта'], ... ['методов','доставки','товаров'] ]
Отредактировано vanvanov (Ноя. 18, 2014 01:45:20)
Офлайн
221
модуль itertools метод product:
>>> a='qwe' >>> b='123' >>> c='!@#' >>> >>> for i in itertools.product(a,b,c): ... print i ... ('q', '1', '!') ('q', '1', '@') ('q', '1', '#') ('q', '2', '!') ('q', '2', '@') ('q', '2', '#') ....
Отредактировано JOHN_16 (Ноя. 18, 2014 06:08:34)
Офлайн
103
def magic(a, i, j): jj = 1 for k in xrange(i+1, len(a)): jj *= len(a[k]) return a[i][j/jj%len(a[i])] a = [[['00','01','02','03'],['10'],['20','21']], [['30','31','32'],['40','41'],['42','43','44']]] b = [] for i in a: l = 1 for j in i: l *= len(j) for j in xrange(l): b.append([magic(i, k, j) for k in range(len(i))])
[['00', '10', '20'], ['00', '10', '21'], ['01', '10', '20'], ['01', '10', '21'], ['02', '10', '20'], ['02', '10', '21'], ['03', '10', '20'], ['03', '10', '21'], ['30', '40', '42'], ['30', '40', '43'], ['30', '40', '44'], ['30', '41', '42'], ['30', '41', '43'], ['30', '41', '44'], ['31', '40', '42'], ['31', '40', '43'], ['31', '40', '44'], ['31', '41', '42'], ['31', '41', '43'], ['31', '41', '44'], ['32', '40', '42'], ['32', '40', '43'], ['32', '40', '44'], ['32', '41', '42'], ['32', '41', '43'], ['32', '41', '44']]
Офлайн