在传统的python中,sum函数给出一个list的总和:
In traditional python, the sum function gives the sum of a list:
sum([0,1,2,3,4])=10
另一方面,如果你有一个嵌套列表怎么办:
On the other hand, what if you have a nested list as so:
sum([[1,2,3],[4,5,6],[7,8,9]])
我们发现错误:
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'list'
除此之外,我们如何在嵌套列表中找到第一个值(索引 0)的 sum?如:
In addition to this, how could we find the sum of the first values (index 0) in a nested list? Such as:
something([[1,2,3],[4,5,6],[7,8,9]])=12
要获得所有第一个元素的总和,您需要有一个生成器表达式
To get the sum of all the first elements you need to have a generator expression
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> sum(i[0] for i in a)
12
您得到 unsupported operand type(s) for +: 'int' and 'list' 因为您尝试添加三个列表,这不是所需的行为.
You are getting unsupported operand type(s) for +: 'int' and 'list' because you are trying to add the three lists which is not the desired behavior.
如果您想要一个第一个元素的列表,然后找到它们的总和,您可以尝试使用列表推导
If you want a list of first elements and then find their sum, you can try a list comprehension instead
>>> l = [i[0] for i in a]
>>> l
[1, 4, 7]
>>> sum(l)
12
或者您可以调用 __next__ 方法,因为列表是可迭代的(如果 Py3)
Or you can call the __next__ method as list is an iterable (If Py3)
>>> sum(zip(*a).__next__())
12
这篇关于嵌套列表中第一个值的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
如何在python中的感兴趣区域周围绘制一个矩形How to draw a rectangle around a region of interest in python(如何在python中的感兴趣区域周围绘制一个矩形)
如何使用 OpenCV 检测和跟踪人员?How can I detect and track people using OpenCV?(如何使用 OpenCV 检测和跟踪人员?)
如何在图像的多个矩形边界框中应用阈值?How to apply threshold within multiple rectangular bounding boxes in an image?(如何在图像的多个矩形边界框中应用阈值?)
如何下载 Coco Dataset 的特定部分?How can I download a specific part of Coco Dataset?(如何下载 Coco Dataset 的特定部分?)
根据文本方向检测图像方向角度Detect image orientation angle based on text direction(根据文本方向检测图像方向角度)
使用 Opencv 检测图像中矩形的中心和角度Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 检测图像中矩形的中心和角度)