功能時,我想轉換以下,以利用地圖功能:Python的 - 使用地圖具有3個參數
tmplist = [3434,34,342,123123,451414,124124,1234124]
b=1234
a=5234
for i in tmplist:
b, a = myfunc(b, a, i)
請注意,這兩個B和A將在每次迭代被覆蓋。這個問題最初的需求是使代碼更有效率。我正在尋求一個實現,它將幫助我的迭代比上面的for循環快得多。
謝謝。
功能時,我想轉換以下,以利用地圖功能:Python的 - 使用地圖具有3個參數
tmplist = [3434,34,342,123123,451414,124124,1234124]
b=1234
a=5234
for i in tmplist:
b, a = myfunc(b, a, i)
請注意,這兩個B和A將在每次迭代被覆蓋。這個問題最初的需求是使代碼更有效率。我正在尋求一個實現,它將幫助我的迭代比上面的for循環快得多。
謝謝。
這是一個減少,而不是一張地圖。爲減少相應的功能是reduce
:
b, a = reduce(lambda ba, x: myfunc(ba[0], ba[1], x), tmplist, (b, a))
注意,這不會與你的工作效率的問題有所幫助。如果您想提高代碼的效率,您需要對算法進行改進,否則您需要從內部循環中刪除Python級別的代碼。
感謝這一點,但不幸的是,它並沒有改善執行時間,而是通過reduce函數得到了最壞的結果。更具體地說,它將執行時間提高了10微秒。 –
@Captain_Harlock:是的,正如我所說,這是預期的。 '地圖'也不會幫助你。 – user2357112
你想更新每次迭代的a,b值嗎? – tglaria
是的,我需要這樣做 –
那麼爲什麼要使用'map'? 我不認爲你會有一個容易閱讀的代碼。 – tglaria