我已經在Python,其中ori是一個字符串Python能否避免在語句中重新評估?
[ori[ori.rfind(' ') + 1:], ori[:ori.rfind(' ')]]
我們可以看到ori.rfind(」「)被調用了兩次,是解釋足夠聰明下面的語句只是計算函數只有一次?
我們可以做到以下幾點:
s = ori.rfind(' ') return [ori[s+1:], ori[:s]]
但這種利用兩行。我打算在列表理解中使用這個語句,並希望這個函數是一行。
在這種情況下,解釋器實際上更容易理解,因爲字符串是不可變的。我的猜測可能是解釋者可以聰明地避免重新評估。一般來說,如果對象是不可變的,解釋器是否足夠聰明?
「使用兩行很少pythonic」?! – NPE 2013-03-15 17:29:18
爲什麼它會變得不那麼pythonic? – 2013-03-15 17:29:27
在幾乎所有情況下,使用兩行*都是不正確的*。當它是正確的時候,它很少重要。當它是正確的並且很重要時,通常很難自動完成。 – delnan 2013-03-15 17:34:40