我的函數需要一個列表或元組作爲參數。它並不真正關心它是,它所做的只是把它傳遞給可以接受一個列表或元組的另一個功能: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