Python函数参数:tuple/list

max*_*max 6 python coding-style tuples list

我的函数需要一个列表或一个元组作为参数.它并不关心它是什么,它只是将它传递给另一个接受列表或元组的函数:

def func(arg): # arg is tuple or list
  another_func(x)
  # do other stuff here
Run Code Online (Sandbox Code Playgroud)

现在我需要稍微修改一下这个函数来处理一个额外的元素:

def func(arg): #arg is tuple or list
  another_func(x + ['a'])
  # etc
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会起作用:如果arg是元组,我必须说x + ('a',).

显然,我可以通过强制arg列出来使其工作.但它并不整洁.

有没有更好的方法呢?当然,我不能强迫呼叫者总是传递一个元组,因为它只是转移到他们的工作.

Joc*_*zel 7

如果another_func只想要一个可迭代的,你可以传递itertools.chain(x,'a')给它.