把tuple或者list裡的元素作為函式引數傳入
阿新 • • 發佈:2018-12-17
1、tuple或list中的所有元素傳入一個函式的引數列表中:
需求函式如下:
tuple = (1, "foo", "bar")
def myfun(number, str1, str2):
return (number * 2, str1 + str2, str2 + str1)
myfun(expand(tuple)) # (2, "foobar", "barfoo")
解決方案:
使用迭代器,就能很好的達到需求:
myfun(*tuple)
如上所示,list也是同樣道理。
2、tuple或者list的元素依次傳入函式,進行多次迭代。
方法:使用map()函式。map() 會根據提供的函式對指定序列做對映。
第一個引數 function 以引數序列中的每一個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。
map() 函式語法:
map(function, iterable, ...)
下面的函示例取自菜鳥教程:
>>>def square(x) : # 計算平方數 ... return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 計算列表各個元素的平方 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函式 [1, 4, 9, 16, 25] # 提供了兩個列表,對相同位置的列表資料進行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]