将另一个值添加到2d列表

时间:2017-10-06 02:35:41

标签: python

在Python中,我正在编写一个chi平方函数来分析图片。这是当前函数,它获取每个像素的RGB值并将其放入列表中:

`def chiSquared(c):
    counter=0
    width, height = c.size
    matrix = [[0 for x in range(3)] for y in range(height*width)]
    for x in range(width):
        for y in range(height):
            matrix[counter][0]=c.getpixel((x,y))[0]
            matrix[counter][1]=c.getpixel((x,y))[1]
            matrix[counter][2]=c.getpixel((x,y))[2]
            counter+=1`

矩阵看起来像:

[[230, 222, 218], [221, 218, 210], [218, 214, 206], [213, 206, 202], [214, 210, 206], [217, 215, 206], [218, 214, 210], [222, 218, 210], [225, 218, 214], [230, 222, 214], [221, 214, 206], [213, 211, 207], [205, 202, 198], [198, 194, 186], [177, 170, 166]...

我想知道的是:有一种简单的方法可以在每个3元组中添加值并创建一个4元组,其中最后一个数字是3元组的总和。 IE为上面的矩阵 - > [230,222,218] - > [230222218670]

edit1:很简单,我的意思是有一种更好的方法,然后通过整个矩阵(每个3元组)求和并创建一个新矩阵。

1 个答案:

答案 0 :(得分:1)

IIUC

l=[[230, 222, 218], [221, 218, 210]]
[x+[sum(x)] for x in l]
Out[17]: [[230, 222, 218, 670], [221, 218, 210, 649]]