嵌套列表中的第一个元素的总和

纷争

我正在尝试获取嵌套列表中的第一个元素并汇总值。

例如。

nested_list = [[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']]
print sum(i[0] for i in nested_list)

但是,有时列表中的第一个元素会None代替

nested_list = [[1, 'a'], [None, 'b'], [3, 'c'], [4, 'd']]
new = []
for nest in nested_list:
    if not nest[0]:
        pass
    else:
        new.append(nest[0])
print sum(nest)

想知道我编写此代码的更好方法是什么?

马丁·彼得斯(Martijn Pieters)

就在过滤然后,在不属于值这种情况下的测试None

sum(i[0] for i in nested_list if i[0] is not None)

生成器表达式(以及列表,字典和集合理解)采用任意数量的嵌套for循环和if语句。以上等同于:

for i in nested_list:
    if i[0] is not None:
        i[0]  # used to sum()

注意这如何反映您自己的代码;而不是使用if not ...: passelse,我倒置了测试以仅允许您实际上可以求和的值。如果您需要使用过滤器的更多循环,或者仅使用一个从左至右添加更多for循环或if语句以嵌套顺序,或者在单个过滤器中使用andor将多个测试串在一起即可if

在您的特定情况下,只需进行测试if i[0]就足够了;这会过滤掉None0,但是后者的值无论如何不会影响总和:

sum(i[0] for i in nested_list if i[0])

您已经if在循环代码中通过自己的测试来解决此问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从嵌套列表的子列表中提取第一个和最后一个元素

选择嵌套列表的第一个元素

Python:嵌套列表中的第一个元素

嵌套列表中的第一个值的总和

矩阵中第一个元素匹配的行的总和?

Ansible从列表中获取第一个元素

在Python的列表列表中查找第一个元素的总和

删除嵌套列表的每个子列表的第一个元素

提取列表中列表的第一个元素

从列表中创建一个数组,其中数组的第一个元素是列表中的第一个元素

从r的嵌套列表中的第一项的总和中减去一个

从MongoDB中的所有文档中获取数组字段的第一个元素的总和

列表中的第一个元素haskell

如何在terraform的嵌套列表中切片第一个元素

根据第一个元素组合嵌套列表

返回Haskell中列表的第一个元素

如何拆分嵌套列表元素的第一个元素?

将嵌套列表转换为dict,其中列表的第一个元素是dict的键

在列表中删除元组的第一个元素

将嵌套列表的第一个元素绑定到嵌套列表的后续元素

基于嵌套列表的第一个元素合并嵌套列表

计算嵌套列表中的第一个元素

列表/嵌套列表中的第一个元素

如何访问嵌套列表的第一个元素?

如何通过嵌套列表中第一个元素的值提取子列表

按嵌套列表中的第一个元素过滤掉它们

如何获取嵌套列表中的所有元素,其中每个列表的第一个元素是特定数字?

在列表中通过条件的第一个元素之后添加一个元素

在嵌套列表中从第一个列表中选择第一个元素,从第二个列表中选择第二个元素,依此类推