def sum_dup(a = 0, b = 0, c = 0):
""" Using defaults allows strategy to Works with lists of length 0, 1, 2, or 3.
If we have fewer than three inputs then missing inputs are 0 by default """
if a == b == c:
# all three are equal
return a + b + c
elif a == b:
# equal first & second
return a + b
elif b == c:
# second & third
return b + c
elif a == c:
# first & third
return a + c
else:
# none are equal
return 0
测试列表
lsts = [[5], [5, 5, 5], [], [0, 5], [2, 3, 3], [5, 0, 5]]
for lst in lsts:
# *lst explands list into input for sum_dup
# meaning same as sum_dup(lst[0], lst[1], etc.)
print(f'List {lst} has sum {sum_dup(*lst)}')
输出
List [5] has sum 0
List [5, 5, 5] has sum 15
List [] has sum 0
List [0, 5] has sum 0
List [2, 3, 3] has sum 6
List [5, 0, 5] has sum 10
如果
if
/elif
语句:或者,如果您希望以后有更多相关的案例(例如,更长的列表),您可以将其概括为“返回列表中最常见项目的总和”。最简单的方法可能是使用一个循环来创建一个
dict
,其中包含每个唯一值的出现次数,然后使用另一个循环来查找最常见的项x
及其计数n
,然后返回x * n
。你知道吗以下代码涵盖所有三种情况,可在函数中使用:
以下工作列表长度不超过3(即0、1、2或3)
测试列表
输出
相关问题 更多 >
编程相关推荐