在Python中,将可变长度列表的每个元素都放入函数调用中?

时间:2014-12-04 17:31:15

标签: python parameter-passing

我有一个函数f(* args)。用户输入一串用逗号分隔的单词,我使用.split(',')将其拆分为一个列表。我希望能够调用函数f(word1,word2,...,wordn),其中列表中有n个单词。我怎么能这样做?

请注意,我只想将f定义为f(列表)并输入列表,但是教师要求我们使用f(* args)。

示例:用户输入&#hi; church,banana',我将其分成列表[' hi',' church',' banana& #39;]我想打电话给f(' hi',' church',' banana')。我不知道如何进行最后一步,因为用户可以输入任意数量的单词。

2 个答案:

答案 0 :(得分:1)

试试这个:

  def f(*words):
      for word in words:
          print word

  line = "This is a line of text with multiple words"
  words = line.split()

  f(*words) 

注意在调用中使用*会将列表解压缩为一个元组,这与使用多个参数调用实际上相同

答案 1 :(得分:0)

当您使用def f(*args):定义函数时,传递给函数的所有参数都会显示在您可以迭代的序列args中:

def f(*args):
    for arg in args:
        print arg

f('Foo', 'Bar', 'Spam')

Foo
Bar
Spam