Удалить элемент из набора с соответствующими критериями - PullRequest
0 голосов
/ 04 мая 2020

У меня есть два набора кортежей, где каждый кортеж равен (x, y, flag). Я хотел бы объединить их вместе так, чтобы функция комбинирования удаляла и заменяла любое значение x, y в наборе A , которое находится в наборе B независимо от флаг. Например:

A = {(1,1.5,1),(1,2.5,0),(2,2.5,1)}
B = {(1,1,1),(1,2.5,1),(2,2.5,0)}

f(A,B)
>>> 
{(1,1,1),(1,1.5,1),(1,2.5,1),(2,2.5,0)}

Кто-нибудь знает быстрый и элегантный способ сделать это? Если у вас есть лучший способ сделать это с различными структурами данных, дайте мне знать.

1 Ответ

2 голосов
/ 04 мая 2020
A = {(1,1.5,1),(1,2.5,0),(2,2.5,1)}
B = {(1,1,1),(1,2.5,1),(2,2.5,0)}

print(set({(a, b): (a, b, c) for s in [A, B] for (a, b, c) in s}.values()))

Отпечатки:

{(1, 2.5, 1), (1, 1, 1), (2, 2.5, 0), (1, 1.5, 1)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...