比较嵌套列表中的值

太空球

我已经检查过了,找不到最简单的答案。

我在 python 中有一个嵌套的项目列表。

[['screens\\achieve.png', 378, 40, 194, 198, 234],
 ['screens\\test.png', 378, 40, 1, 8, 15],
 ['screens\\cutout.png', 378, 40, 4, 8, 14],
 ['screens\\sample.png', 378, 40, 1, 6, 12]]

这些是图像中的像素颜色,我在列表中有大约 60 张图像,这是其中的一部分。图片名称、x坐标、y坐标、红、绿、蓝值

我的工具所做的是显示图像。我单击图像中的一个位置,它会遍历充满图像的文件夹,并在查看的图像中单击的位置输出颜色值。

现在我要做的是查看颜色值列表,看看列表中的任何其他图像是否在同一位置具有相同的颜色。

我知道我正在检查的记录。从上面的片段中,可以说我正在查看列表中的 test.png (item[1])。我需要遍历列表中的其他项目,以查看我在 test.png 中单击的位置是否与任何其他项目的颜色不同。

提前致谢。

安德烈·凯塞利

如果我理解正确,您想根据所有其他图像检查特定索引处的图像颜色:

lst = [
    ["screens\\achieve.png", 378, 40, 194, 198, 234],
    ["screens\\test.png", 378, 40, 1, 8, 15],
    ["screens\\cutout.png", 378, 40, 4, 8, 14],
    ["screens\\sample.png", 378, 40, 1, 6, 12],
]


def check(lst, test_idx):
    *_, r, g, b = lst[test_idx]

    return any(
        (r, g, b) == (tr, tg, tb)
        for i, (*_, tr, tg, tb) in enumerate(lst)
        if i != test_idx
    )


print(check(lst, 1))

印刷:

False

如果列表是:

lst = [
    ["screens\\achieve.png", 378, 40, 1, 8, 15],
    ["screens\\test.png", 378, 40, 1, 8, 15],
]

然后:

print(check(lst, 1))

印刷:

True

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章