在 Python 中对包含 None 值的列表求和

总结一个包含 None 值的列表:

  1. 使用 filter() 函数从列表中删除 None 值。
  2. 将 filter 对象传递给 sum 函数。
  3. sum() 函数将对列表中的数字求和。
my_list = [2, None, 4, None, 6, None]

total = sum(filter(None, my_list))

print(total)  # ?️ 12

在 Python 中对包含 None 值的列表求和

我们使用 filter() 函数从列表中删除 None 值。

filter() 函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。

如果为函数参数传递 None ,则可迭代的所有虚假元素都将被删除。

my_list = [2, None, 4, None, 6, None]

# 👇️ [2, 4, 6]
print(list(filter(None, my_list)))

所有不真实的值都被认为是虚假的。 Python 中的虚假值是:

  • 定义为虚假的常量:None 和 False。
  • 任何数字类型的 0(零)
  • 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。

最后一步是将过滤器对象传递给 sum() 函数。

my_list = [2, None, 4, None, 6, None]

total = sum(filter(None, my_list))

print(total)  # 👉️ 12

sum() 函数接受一个可迭代对象,从左到右对其项求和并返回总数。

print(sum([2, 4, 6])) # 👉️ 12

sum() 函数采用以下 2 个参数:

  • iterable 要对其项目求和的可迭代对象
  • start 将起始值和可迭代的项目相加。 sum 默认为 0(可选)