问题
给出一个数字的数组,找出其中的奇数,将他们各自的立方和相加,返回结果
思路
- 数组
- 循环
- 判断
- 求和
解决方法
sum求和,内部迭代判断奇偶
def cube_odd(arr):
try:
return sum([i ** 3 for i in arr if i % 2 != 0])
except TypeError:
return None
sum求和,type判断其中是不是有不是数字的元素
def cube_odd(arr):
return sum( n**3 for n in arr if n % 2 ) if all(type(n) == int for n in arr) else None
lambda表达式封装判断过程
def cube_odd(arr):
if list(filter(lambda x: type(x) == str, arr)):
return None
else:
pass
arrOddCubed = []
for i in range(0, len(list(filter(lambda x: x % 2 != 0, arr)))):
arrOddCubed.append(list(filter(lambda x: x % 2 != 0, arr))[i] ** 3)
return sum(arrOddCubed)