В поисках более питонического логического решения

Я решал несколько практических задач в Coding Batи наткнулся на это..

Given 3 int values, a b c, return their sum. However, if one of the values is the same as another of the values, it does not count towards the sum. 

lone_sum(1, 2, 3) → 6
lone_sum(3, 2, 3) → 2
lone_sum(3, 3, 3) → 0 

Мое решение было следующим.

def lone_sum(a, b, c):
   sum = a+b+c
   if a == b:
     if a == c:
         sum -= 3 * a
     else:
         sum -= 2 * a
   elif b == c:
     sum -= 2 * b
   elif a == c:
     sum -= 2 * a
   return sum

Есть ли более питонический способ сделать это?

6
задан Martijn Pieters 30 May 2012 в 13:02
поделиться