2016-11-11 66 views
-4

這是我的解決方案。它不是優雅的。請幫忙。任何人都可以幫助我在一行中寫這個函數嗎?

def calculateHandlen(hand): 
    """ 
    Returns the length (number of letters) in the current hand. 

    hand: dictionary (string int) 
    returns: integer 
    """ 
    num = 0 
    keyS = hand.keys() 
    for key in keyS: 
     if hand[key] > 0: 
      num += hand[key] 
    return num 
+3

爲什麼你需要它在一條線?函數有什麼問題? –

+4

爲什麼?這個功能很好。不要陷入思考「單行程」爲更優雅的代碼所製造的陷阱。 –

+0

如果手[鍵]> 0:「長度(字母數)」給你' –

回答

4
def calculateHandlen(hand): 
    return sum(v for v in hand.values() if v > 0) 

但是,爲什麼?

+0

我正在服用6.00.1x有人說他/她可以在一行中完成。但我不相信。這就是爲什麼。謝啦! –

+2

@VatoLiu從技術上講,python中的一個內襯是完整的:你可以做任何事情。 –

相關問題