五个参数可以有各种len(包括空)。我为前三个参数写了很长的代码,对于更多的参数来说,它会重复更大的代码。如何最小化代码?python:字典中列表的组合,列表的大小不一
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
需要得到与组合的非空参数,可以的示例代码输出字典:
{'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? – 2014-10-27 14:50:52
你想要这些参数的所有[组合](https://docs.python.org/3/library/itertools.html#itertools.product)吗? – 2014-10-27 14:50:59
你有没有玩过[code golf](http://codegolf.stackexchange.com/)? – wnnmaw 2014-10-27 14:51:09