gpt4 book ai didi

python - 更改列表中元组中的值

转载 作者:太空宇宙 更新时间:2023-11-03 12:21:14 26 4
gpt4 key购买 nike

我有一个包含三元素元组的二维列表。

image = [[(15, 103, 255), (0, 3, 19)],[(22, 200, 1), (8, 8, 8)],[(0, 0, 0), (5, 123, 19)]]

我想给每个元素加一个。

def get_elements(image):
for i in range(len(image)-1) :
m = image[i]
for j in range(len(m)-1) :
n = image[j]
for k in range(len(n)-1) :
ans = image[i][j][k]
ans = ans+1
return ans

此代码只是将 1 添加到第一个元素并返回 15 + 1 = 16。我希望它给出:

image = [[(16, 104, 256), (1, 4, 20)],[(23, 201, 2), (9, 9, 9)],[(1, 1, 1), (6, 124, 20)]]

最佳答案

元组是不可变的。您不能直接修改它们,所以最好的办法是生成一个包含新元组的新列表。

>>> image
[[(15, 103, 255), (0, 3, 19)], [(22, 200, 1), (8, 8, 8)], [(0, 0, 0), (5, 123, 19)]]
>>> [[(r+1,g+1,b+1) for r,g,b in row] for row in image]
[[(16, 104, 256), (1, 4, 20)], [(23, 201, 2), (9, 9, 9)], [(1, 1, 1), (6, 124, 20)]]

这使用了两个嵌套的列表理解。外层循环遍历每一行,每次迭代都会产生一个新的替换行(此处表示为 [...]):

[[...] for row in image]

内部循环遍历每一行中的像素,产生具有修改后的 RGB 值的新元组。

[(r+1,g+1,b+1) for r,g,b in row]

关于python - 更改列表中元组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com