比较嵌套列表中的值

Comparing values in nested list

我查了一下,找不到最简单的答案。

我在 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