题目要求:
给你一个整数数组。应该找到索引为偶数的整数之和(第0、第2、第4…)。然后将这个求和数和数组的最后一个元素相乘。别忘了第一个元素的索引是0。
对于空数组,结果总是0(零)。
输入:整数列表。
输出:整数形式的数字。
前提条件:0≤ len(数组)≤ 20
all(数组中x的isinstance(x,int)
全部(-100<x<100表示阵列中的x)
需要达到的效果:
assert checkio([0, 1, 2, 3, 4, 5]) == 30, "(0+2+4)*5=30"
assert checkio([1, 3, 5]) == 30, "(1+5)*5=30"
assert checkio([6]) == 36, "(6)*6=36"
assert checkio([]) == 0, "An empty array = 0"
**知识点:**当索引为偶数时的切片。
本人代码:
def checkio(array: list) -> int:
#分为2个判断,否则当array为空列表时,会报错
if len(array) == 0:
return 0
if len(array) != 0:
even_lists = []
for i in range(0,len(array),2):
even_lists.append(array[i])
return sum(even_lists) * array[-1]
大神代码:
def checkio(array: list) -> int:
return sum(array[i] for i in range(0, len(array), 2))*array[-1] if len(array) > 0 else 0
两段代码的运行结果:
Example:
30
30
36
0
一行代码解决,以我的代码水平,居然也能看懂,又长知识了。