Как добавить пары элементов в понимание набора Python в зависимости от логического оператора?Python

Программы на Python
Anonymous
Как добавить пары элементов в понимание набора Python в зависимости от логического оператора?

Сообщение Anonymous »


У меня есть замороженный набор из трех элементов F = {v0,v1,v2} и набор замороженных наборов из двух элементов, т. е. E = {e0,e1,e2,...}, где каждый ei=frozenset({ х, у}). Я хочу найти следующий набор

S = {frozenset({a,b}) : a,b в E, каждый из a и b содержит отдельные элементы из F, а a и b имеют общий элемент}.

пример: a содержит v0, b содержит v1, а a и b содержат v7 (какое-то произвольное значение, не входящее в F), что означает, что замороженный набор({a,b}) находится в S.

Могу ли я сделать это с помощью однострочного набора данных?

Для контекста: я пытаюсь написать сценарий для уточнения триангуляции октаэдра, как показано на рисунке:


Изображение


Набор S, который мне нужен, будет зеленым текстом.

На данный момент у меня есть следующее:
импортировать pylab как plt импортировать numpy как np из mpl_toolkits.mplot3d.art3d импорт Poly3DCollection ### Начальный октаэдр ### Вершины = [[0,0,1], [1,0,0], [0,1,0], [-1,0,0], [0,-1,0], [0,0, -1] ] Края = { замороженный набор({0,1}), замороженный набор({0,2}), замороженный набор({0,3}), замороженный набор({0,4}), замороженный набор({1,2}), замороженный набор({2,3}), замороженный набор({3,4}), замороженный набор({1,4}), замороженный набор({1,5}), замороженный набор({2,5}), замороженный набор({3,5}), замороженный набор({4,5}) } Faces = { замороженный набор({0,1,2}), замороженный набор({0,2,3}), замороженный набор({0,3,4}), замороженный набор({0,1,4}), замороженный набор({1,2,5}), замороженный набор({2,3,5}), замороженный набор({3,4,5}), замороженный набор({1,4,5}) } ### Новый набор вершин, ребер и граней ### счетчик=5 newVertices=установить() newEdges=установить() newFaces=установить() для края в Edges: # добавление элементов newVertices и newEdges счетчик=счетчик+1 newVertices.add(счетчик) для вершины в ребре: newEdges.add(frozenset({vertex,counter}))

Вернуться в «Python»