Python 在函数上创建一个循环,使用包装器在新行中打印出函数接收的元素

Python 在函数上创建一个循环,使用包装器在新行中打印出函数接收的元素,python,python-2.7,Python,Python 2.7,我有一个函数,它包含两个列表。现在我得到的是,函数将从列表中获取所有参数,并将它们打印到新行中。问题是我不能改变函数本身,但是我必须在它上面创建一个包装器或者一个循环来完成我需要它做的事情 Name = ['one', 'two', 'three'] size = [1, 2, 3] def createSomething(Name, size = None): if size: something = loudEchoCmd("something create --

我有一个函数,它包含两个列表。现在我得到的是,函数将从列表中获取所有参数,并将它们打印到新行中。问题是我不能改变函数本身,但是我必须在它上面创建一个包装器或者一个循环来完成我需要它做的事情

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))

但不知道如何在不更改功能的情况下执行此操作:(

这应该满足您的要求:

def createManySomethings(Names, sizes):
    for (name, number) in zip(Names, sizes):
        createSomething([name], [number])

什么能阻止你创建一个新函数呢?我建议创建一个新函数,但被告知只创建一个包装器会更简单。事实证明(至少对我来说)这并不简单。所以现在我来向各位寻求帮助。请注意,当您调用createSomething时,它需要两个列表。如果您向它传递每个列表只包含一项,则函数会执行您想要的操作。是的,当我每个列表都有一项时,我得到了我想要的内容,但我有多个列表,这就是问题所在。您怎么办名称和数字代表?这对我很有用,谢谢。如果我创建了一个新函数,名称和数字就是x1,x2。