如果我定義一個函數爲:功能的列表/標量作爲參數
def somefunc(a, b, c):
out = [ (a+b)/c for a, b, c in zip(a, b, c) ]
return out
所有參數必須是同一長度的列表,否則我會得到截斷輸出。例如:somefunc([1, 2], [3, 4], [5, 5])
會給我[0.8, 1.2]
。
如果輸入一個單一的數字而不是列表,如果它沒有改變,這將是非常方便的,如:somefunc([1, 2], [3, 4], 5)
。當然,任何參數都可以簡化爲單個值而不是列表。這可以通過使用numpy的這個函數的定義來實現:
from numpy import array
def somefunc(a, b, c):
a=array(a)
b=array(b)
c=array(c)
out = (a+b)/c
return out
有沒有辦法做同樣沒有numpy的(並且沒有一個將所有參數之一)?
不,'zip'需要迭代參數;如果你的函數使用了不可迭代的參數,你將不得不轉換它們。 – jonrsharpe
注意:如果你想要NumPy功能,最簡單的方法就是使用NumPy。當然每個功能都可以在沒有NumPy的情況下實現,但如果這很容易,NumPy就不會在這裏。 – user2357112