一个“ pyschool”练习:
“定义一个调用addFirstAndLast(x)
的函数,该函数接受一个数字列表并返回第一个和最后一个数字的和。”
这是我想出的最佳解决方案。有没有更优雅的方式来编写仅使用内置函数的函数?
def addFirstAndLast(x):
sum_list = []
if len(x) == 0:
return 0
elif len(x) == 1 :
return int(x[0])
elif len(x) > 1 :
sum_list.append(x[0])
sum_list.append(x[-1])
return sum(sum_list)
最佳答案
>>> def addFirstAndLast(x):
... return (x[0]+x[-1])/(1/len(x)+1) if x else 0
...
>>> addFirstAndLast([])
0
>>> addFirstAndLast([1])
1
>>> addFirstAndLast([1,3])
4
注意1:仅当list的长度为1时,
(1/len(x)+1)
的结果为2,因此您将第一个元素和最后一个元素的和除以2,否则将其除以1。注意2:如果您使用的是python 3,请使用
//
进行除法,而不是/
。