我需要解决一个任务:
一个仅接受一个参数(整数列表)并在一个元组中返回两个值的函数filter_list
- 列表中大于等于13且小于等于97的元素的总和
- 列表中大于0和13-fold的元素的总和
因此,我对如何实现具有概念性的了解,但是,当我开始编写代码时,无法将这两个值分配给函数外部的新变量。
numbers = [1, 10, 13, 23, 34, 45, 90]
def filter_list(nums):
for e in nums:
result1 = sum(e for e in nums if e >= 13 and e <= 97)
return result1
for e in nums:
result2 = sum(e for e in nums if e>0 and e % 13 == 0)
return result2
print(result1, result2)
print(filter_list(numbers))
result_sum = filter_list(numbers)
print(result_sum)
分析解答
def filter_list(nums):
result1 = sum(e for e in nums if 97 >= e >= 13)
result2 = sum(e for e in nums if e > 0 and e % 13 == 0)
print(result1, result2)
return result1, result2
您无需再做一个for loop
,然后再在里面做一个for loop
。同样,在return
之后,该功能将退出,您将无法再执行任何操作。因此,您必须存储变量,然后立即返回它们。