我有一个带两个列表的函数。现在我现在所拥有的是该函数将从列表中获取所有参数并将它们打印在一个新行中。问题是我不能改变函数本身,而是我必须在它上面创建一个包装器或循环来完成我需要它做的事情。
Name = ['one', 'two', 'three']
size = [1, 2, 3]
def createSomething(Name, size = None):
if size:
something = loudEchoCmd("something create --size %s --name %s " % ((',')join(size), (',')join(Name)))
else:
something = loudEchoCmd("something create --name %s " % (',')join(Name))
return something
运行时我得到的是:
Example:
something create --size 1, 2, 3 --name one, two, three
这就是我想要的:
Example:
something create --size 1 --name one
something create --size 2 --name two
something create --size 3 --name three
所以我需要在该函数上创建一个包装器来完成我需要它做的事情。我不知道该怎么做。这就是我只需更改功能就可以做到的事情:
def createSomething(Name, size = None):
if size:
for(i, (x1, x2)) in enumerate(zip(size,Name)):
loudEchoCMD("something create --size {0} --name {1}")
else:
for x in Name:
loudEchoCMD("something create --name {0}".format(x))
但不知道怎么做而不改变功能:(
答案 0 :(得分:1)
这应该做你想要的:
def createManySomethings(Names, sizes):
for (name, number) in zip(Names, sizes):
createSomething([name], [number])