gpt4 book ai didi

python - 寻找更pythonic的逻辑解决方案

转载 作者:太空狗 更新时间:2023-10-29 22:00:31 25 4
gpt4 key购买 nike

我在做一些练习题 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

是否有更 pythonic 的方式来做到这一点?

最佳答案

另一种适用于任意数量参数的可能性:

from collections import Counter

def lone_sum(*args):
return sum(x for x, c in Counter(args).items() if c == 1)

请注意,在 Python 2 中,您应该使用 iteritems 来避免构建临时列表。

关于python - 寻找更pythonic的逻辑解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com