3 int, a, b, c가 주어집니다. 고유 한 경우 세 가지 int의 합계를 찾고 싶습니다. a, b 또는 c에 다른 값과 동일한 값이 있으면 합계에 포함되지 않습니다.
예 1 :
a = 3, b = 3, c =3
sum = 0
예 2
a = 1, b = 3, c =3
sum = 1
이것이 내가 한 일입니다. 너무 많은 if else 문없이 이것을 수행하는 더 파이썬적인 방법이 있습니까?
def lone_sum(a, b, c):
if a != b and b != c and a != c:
return a + b + c
elif a == b == c:
return 0
elif a == b:
return c
elif b == c:
return a
elif a == c:
return b
from collections import Counter
def lone_sum(a, b, c):
d = Counter([a, b, c])
return sum(k for k in d if d[k]==1)
숫자 추가 :
def lone_sum(*L):
d = Counter(L)
return sum(k for k in d if d[k]==1)
정확히 c
몇 번 반복되는 숫자 추가 :
def rep_sum(c, *L):
d = Counter(L)
return sum(k for k in d if d[k]==c)
대부분 반복되는 숫자 추가 c
:
def rep_sum(c, *L):
d = Counter(L)
return sum(k for k in d if d[k]<=c)
... 또는 지루하고 창의력을 발휘하고 싶다면 :
def lone_sum(*L):
nums = set()
all_nums = set()
for num in L:
if num in nums:
nums.remove(num)
elif num not in all_nums:
all_nums.add(num)
nums.add(num)
return sum(nums)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다