Iterate over *args?

后端 未结 7 1425
借酒劲吻你
借酒劲吻你 2020-12-15 07:52

I have a script I\'m working on where I need to accept multiple arguments and then iterate over them to perform actions. I started down the path of defining a function and u

7条回答
  •  温柔的废话
    2020-12-15 08:01

    Tho get your precise syntax:

    def userInput(ItemA, ItemB, *args):
        THIS = ItemA
        THAT = ItemB
        MORE = args
    
        print THIS,THAT,MORE
    
    
    userInput('this','that','more1','more2','more3')
    

    You remove the * in front of args in the assignment to MORE. Then MORE becomes a tuple with the variable length contents of args in the signature of userInput

    Output:

    this that ('more1', 'more2', 'more3')
    

    As others have stated, it is more usual to treat args as an iterable:

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

    Output:

    this that more1 more2 more3
    

提交回复
热议问题