在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元组)求和并创建一个新矩阵。
答案 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]]