优雅的元组操作建议

Ins*_*aK0 0 python tuples

我正在处理由元组表示的图像和像素位置。我想检查像素是否彼此相邻并提出了一个可行的解决方案。我相信有比我更优雅的解决方案。这是我的功能:

def test_neighbors(tup1, tup2):
    neighbors = lambda a, b: [(a + 1, b), (a - 1, b), (a, b + 1), (a, b - 1)]
    list1 = neighbors(tup1[0], tup1[1])
    list2 = neighbors(tup2[0], tup2[1])
    for item in list1:
        if item in list2:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

同样,这段代码运行良好,所以如果这不是一个正确的问题,我很抱歉。预先感谢您的建议!

Ale*_*ati 5

您可以检查坐标轴上的增量

def test_neighbors(tup1, tup2):
    x_delta = abs(tup1[0] - tup2[0])
    y_delta = abs(tup1[1] - tup2[1])
    return x_delta + y_delta == 1

Run Code Online (Sandbox Code Playgroud)