我需要解决一个任务: 一个仅接受一个参数(整数列表)并在一个元组中返回两个值的函数filter_list

  1. 列表中大于等于13且小于等于97的元素的总和
  2. 列表中大于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之后,该功能将退出,您将无法再执行任何操作。因此,您必须存储变量,然后立即返回它们。