Пять параметров могут иметь различные len (включая пустые). Я написал длинный код для первых трех параметров, для большего количества параметров для более крупного кода с повторами. Как свести к минимуму код?python: комбинация списков в dict, с разным размером списка
params1 = [1,2]
params2 = []
params3 = [3,4,5,6]
# ...
params5 = [7,8]
# for 3 params example:
summary = {}
if 0 < len(params1):
for param1 in params1:
summary['param1'] = param1
if 0 < len(params2):
for param2 in params2:
summary['param2'] = param2
if 0 < len(params3):
for param3 in params3:
summary['param3'] = param3
print summary
else:
print summary
else:
if 0 < len(params3):
for param3 in params3:
summary['param3'] = param3
print summary
else:
print summary
else:
if 0 < len(params2):
for param2 in params2:
summary['param2'] = param2
if 0 < len(param3):
for param3 in params3:
summary['param3'] = param3
print summary
else:
print summary
else:
if 0 < len(params3):
for param3 in params3:
summary['param3'] = param3
print summary
else:
print summary
нужны получить Dict с комбинациями непустых Params, выход Пример кода:
{'param3': 3, 'param1': 1}
{'param3': 4, 'param1': 1}
{'param3': 5, 'param1': 1}
{'param3': 6, 'param1': 1}
{'param3': 3, 'param1': 2}
{'param3': 4, 'param1': 2}
{'param3': 5, 'param1': 2}
{'param3': 6, 'param1': 2}
Как заменить пример кода для маленьких линий?
что именно вы пытаетесь сделать, какие PARAMS? –
Вы хотите все [комбинации] (https://docs.python.org/3/library/itertools.html#itertools.product) этих параметров? –
Вы когда-нибудь играли в [code golf] (http://codegolf.stackexchange.com/)? – wnnmaw