2014-10-10 66 views
-2

我在學習python語法時遇到困難。我一直在做一些合併排序算法,並且遇到了一些問題。聲明整數時的C++語法

def arrMerge(a): 
    for i in range(1,len(a), *2): 
     for j in range(0,len(a)-1,2*i): 
      end2 = (2*i < len(a) -j) ? 2*i : len(a) -j 

這個塊在python任何想法我應該如何去執行它?

+1

對不起,你有什麼問題嗎?你想達到什麼目的?你的代碼當然是無效的Python,但我不清楚你想要達到什麼目的。 – 2014-10-10 12:12:32

+0

你需要更清楚你想達到的目標。這段代碼應該是什麼語言,你是否試圖將它移植到C++或從C++移植它? – Yann 2014-10-10 12:14:17

回答

1

我假設你問什麼是C++三元運算符的Python等效語法。在Python中,您可以使用語法爲value if condition else other_value的條件表達式。

所以,你的任務將變成:

end2 = 2 * i if 2 * i < len(a) - j else len(a) - j 

它通常是更好地使用純if雖然:

if 2 * i < len(a) - j: 
    end2 = 2 * i 
else: 
    end2 = len(a) - j