【发布时间】:2018-09-16 06:47:50
【问题描述】:
这是我想做的一个例子:
d1 = {'a':1,'b':2,'c':3}
d2 = {'aa':11,'bb':22,'cc':33}
d3 = {'aaa':111,'bbb':222,'ccc':333}
def nLoop(*args):
n = len(args)
if n == 1:
for k0,v0 in args[0].iteritems():
print k0, v0
if n == 2:
for k0,v0 in args[0].iteritems():
for k1,v1 in args[1].iteritems():
print k0, v0, k1, v1
if n == 3:
for k0,v0 in args[0].iteritems():
for k1,v1 in args[1].iteritems():
for k2,v2 in args[2].iteritems():
print k0, v0, k1, v1, k2, v2
nLoop(d1,d2,d3)
我的问题是:有没有一些方法可以在没有 if 条件的情况下做到这一点?也许使用装饰器?
【问题讨论】:
-
这里不是关于传递给函数的参数数量,而是关于添加嵌套循环的方式
-
您可以查看模块
itertools。您还应该能够编写一个返回生成器的函数,获取此类生成器的列表并遍历它们。
标签: python function loops nested python-decorators