Пара координат из списка, у которой ось y равна, а ось x больше или меньше на 1 относительно друг друга - PullRequest
0 голосов
/ 23 апреля 2020

Итак, из списка координат найдены будут [(6,3), (5,3)]. Я не знаю, как исправить мой код.

Coordinates=[(6, 3),(4, 2),(5,3),(2,4)]
ix=0
Found =[]
    for c in coordinates:
        if ((c[0]+1,c[1]) in coordinates) and ((c[0]-1,c[1]) in coordinates):
            ix+=1
            Found.append(c)
            Found.append(c[ix+1])
            break

1 Ответ

0 голосов
/ 23 апреля 2020

Вы запрашиваете «больше ИЛИ меньше на 1», поэтому поместите это ИЛИ в свой код вместо AND:

coordinates = [(6, 3), (4, 2), (5, 3), (2, 4)]
found = []
for c in coordinates:
    if ((c[0]+1, c[1]) in coordinates) or ((c[0]-1, c[1]) in coordinates):
        found.append(c)

found теперь содержит [(6, 3), (5, 3)]

...