我有一个我正在处理的脚本,我需要接受多个参数,然后迭代它们来执行操作。我开始定义一个函数并使用* args。到目前为止,我有类似下面的内容:
def userInput(ItemA, ItemB, *args):
THIS = ItemA
THAT = ItemB
MORE = *args
我要做的是将* args中的参数放入我可以迭代的列表中。我已经在StackOverflow以及Google上查看了其他问题,但我似乎无法找到我想要做的答案。在此先感谢您的帮助。
答案 0 :(得分:12)
获取精确语法:
def userInput(ItemA, ItemB, *args):
THIS = ItemA
THAT = ItemB
MORE = args
print THIS,THAT,MORE
userInput('this','that','more1','more2','more3')
您删除*
作业中args
前面的MORE
。然后MORE成为args
userInput
的元组
输出:
this that ('more1', 'more2', 'more3')
正如其他人所说,将args
视为可迭代的更为常见:
def userInput(ItemA, ItemB, *args):
lst=[]
lst.append(ItemA)
lst.append(ItemB)
for arg in args:
lst.append(arg)
print ' '.join(lst)
userInput('this','that','more1','more2','more3')
输出:
this that more1 more2 more3
答案 1 :(得分:4)
>>> def foo(x, *args):
... print "x:", x
... for arg in args: # iterating! notice args is not proceeded by an asterisk.
... print arg
...
>>> foo(1, 2, 3, 4, 5)
x: 1
2
3
4
5
编辑另请参阅How to use *args and **kwargs in Python(由Jeremy D和subhacom引用)。
答案 2 :(得分:3)
如果你这样做:
def test_with_args(farg, *args):
print "formal arg:", farg
for arg in args:
print "other args:", arg
其他信息:http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/
答案 3 :(得分:0)
MORE = args
或者,直接:
for arg in args:
print "An argument:", arg
答案 4 :(得分:0)
如果你的问题是“如何迭代args
”,那么答案就是“与迭代任何内容的方式相同”:for arg in args: print arg
。
答案 5 :(得分:0)
只需迭代args
:
def userInput(ItemA, ItemB, *args):
THIS = ItemA
THAT = ItemB
for arg in args:
print arg
答案 6 :(得分:0)