我的函数需要一个列表或元组作为参数。它并不真正关心它是,它所做的只是把它传递给可以接受一个列表或元组的另一个功能:Python函数参数:元组/列表
def func(arg): # arg is tuple or list
another_func(x)
# do other stuff here
现在我需要稍微修改的功能,来处理额外的元素:
def func(arg): #arg is tuple or list
another_func(x + ['a'])
# etc
不幸的是,这是行不通的:如果arg是元组,我必须说x + ('a',)
。
很明显,我可以通过强制arg列表工作。但它并不整齐。
有没有更好的方法呢?当然,我不能强迫呼叫者总是通过一个元组,因为它只是转移到他们工作。
如果其他函数接受或者我会发送它一个元组,因为它会更快地处理。那么'tuple(x)+('a',)''不完整? – aaronasterling 2010-11-17 20:08:38
元组实现速度更快吗? – max 2010-11-17 20:40:27
从字符串和数字文字构造一个元组比构建一个列表要快。更重要的是,如果tuple(x)已经是一个元组,那么'tuple(x)'只返回'x',而'list(x)'拷贝'x'即使它已经是一个列表。因此,通过使用元组,可以将大部分工作切分为一半的输入案例。 – aaronasterling 2010-11-17 20:49:43