перечислить координаты с той же координатой Y в список - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть список

Sorted list : [(40, 8), (301, 8), (27, 147), (8, 181), (274, 181)]

Мне нужно вывести координаты с такой же координатой y в список, как

[(40, 8), (301,8)]
[(8, 181), (274, 181)]

Можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Вы можете использовать itertools.groupby для этой работы:

from itertools import groupby

lst = [(40, 8), (301, 8), (27, 147), (8, 181), (274, 181)]

for _, y in groupby(lst, lambda x: x[1]):
    xs = list(y)
    if len(xs) > 1:
        print(xs)

# [(40, 8), (301, 8)]
# [(8, 181), (274, 181)]
0 голосов
/ 10 февраля 2019

Я предлагаю использовать словарь, например, так:

coordinate_list = [(40, 8), (301, 8), (27, 147), (8, 181), (274, 181)]
paired_lists = {}
for x, y in coordinate_list:
    if y in paired_lists:
        paired_lists[y].append((x, y))
    else:
        paired_lists[y] = [(x, y)]

Что мне дает

print(paired_lists)
# {8: [(40, 8), (301, 8)], 
#  147: [(27, 147)], 
#  181: [(8, 181), (274, 181)]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...