簡體   English   中英

Python清單解壓縮,這很貴嗎? 效率低下嗎?

[英]Python list unpacking, is this expensive? Is it inefficient?

假設我有一個Python函數可返回多個元素,例如myfoo0()

def myfoo0():
   return([1, 2, 3])

並將其用作:

fit = myfoo0();

現在,考慮使用一些fit條目作為輸入的函數。 例如:

def myfoo1(fit):
   [a, b, c] = fit
   return(doSomething(a))

現在,如果我將其編寫為:

fit = myfoo0();
out = myfoo1(fit)

(一個例子是,當我有許多功能myfoo1 ,..., myfoon的每個使用不同組分fit )我的問題是如何做上面的代碼(與所述的條目的命名fit的主體內myfoo1 )相比較(從性能角度)到這一點:

[a, b, c] = myfoo0();
out = myfoo2(a)

哪里

def myfoo2(a):
   return(doSomething(a))

特別是,在函數內部拆開元組的解決方案是否會產生大量的額外成本(例如,在復制方面)?

這里有一些誤解:

  1. fit = myfoo0(); 不復制任何內容。 fit只是對myfoo0()返回的列表的引用,而不是副本。

  2. [a, b, c] = myfoo0(); 也不會創建新列表。 另一方面,您有3個變量分別引用第一,第二和第三列表成員。

  3. out = myfoo1(fit)myfoo1(a) 第一個調用將myfoo1作為第一個參數傳遞給列表,第二個調用將myfoo1作為第一個參數傳遞給第一個列表成員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM