2016-10-21 123 views
-1

努力創建一個函數,確定如何將三個接受的整數返回到一個排序格式的元組中,取決於升序是否爲真。我怎麼去編碼呢?如果if語句是否升序,我會使用for循環嗎?我對使用「排序(列表)」和「排序(列表,反向= True)」進行排序有一個大概的想法。「將值返回給一個元組?

功能的代碼,我到目前爲止有:

def sort3(x,y,z, ascending=True): 
    list(x,y,z) 
    return lst 

測試應該是這樣的sort3(5,3,4)返回(3,4,5)

+1

'return tuple(sorted([x,y,z],reverse =(not ascending)))''你只是重寫'sorted'函數... – brianpck

+1

其實他正在返回'lst',這是沒有定義的。 –

+0

@JohnGordon好抓。 –

回答

3

這應該做的伎倆:

def sort3(x, y, z, ascending=True): 
    return tuple(sorted([x, y, z], reverse=not ascending)) 
+0

謝謝你,非常簡單。猜猜我是在想它。 –

0

理論上你可以用一系列的if語句來做到這一點,但是Python有內置函數可以更簡單地執行這個任務。
嘗試使用sorted()功能組合(它返回列表類型的對象)與tuple()功能,該列表轉換爲元組

0
def sort3(x, y, z): 
    d = [x, y ,z] 
    return tuple(sorted(d)) 

這還不夠嗎?