Как соединить все точки графа и записать в отдельный массив
l = [1,4,3,2]
R = [(1,2,1), (1,3,4),(1,4,2),(1,5,4),(2,3,4),(2,4,3),(2,5,4),(3,4,1),(3,5,3),(4,5,2)]
У меня есть вот это и мне нужно получить [(1,4,2),(3,4,1),(2,3,4),(1,2,1)]
Я не пойму как записать что бы оно начинало каждый раз с начала, а не только брало первый и всё
Ответы (2 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Пару элементов из l ищем среди префиксов элементов из R:
l = [1,4,3,2]
R = [(1,2,1), (1,3,4),(1,4,2),(1,5,4),(2,3,4),(2,4,3),(2,5,4),(3,4,1),(3,5,3),(4,5,2)]
d = {frozenset(r[:2]): r for r in R}
g = [d[frozenset(p)] for p in zip(l, l[1:] + l[:1])]
print(g)
[(1, 4, 2), (3, 4, 1), (2, 3, 4), (1, 2, 1)]
P.S. Задача поставлена замечательно неясно.
Автор решения: Artem
→ Ссылка
def graph(R,l):
r = []
k = 0
for q in R:
if(l[0] == q[0] and l[-1] == q[1]):
r.append(q)
elif(l[0] == q[1] and l[-1] == q[0]):
r.append(q)
for k in range(0,len(l)-1):
for x in R:
if(l[k] == x[0] and l[k+1] == x[1]):
r.append(x)
elif(l[k] == x[1] and l[k+1] == x[0]):
r.append(x)
return r