2015-05-31 3 views
-2

Первое сообщение здесь FYI! Я получил этот график, который выглядит следующим образом:Кто-нибудь хорошо подходит для вложенных циклов?

Графы = { 'g1': [[ [ 'a1', 0], [ 'a2', 0] ], [ [ 'е1', 0] ], { 'а1': [ 'е1'], 'а2': [ 'е1']} ]}

То, что граф, представляющий является абстрактными структурами данных графа с узлами и ребрами в основном. Он может представлять один или несколько графиков.

Я пытаюсь "достичь" "a1", так что я могу записать его в файл, как этот пример ниже:

± 1,0; a2,0; a3,0

e1,0 ; e2,0

a1, e1, e2, a2, e1, a3,2

в intergers еще одна вещь, но она в основном имеет два состояния 1 или 0 в зависимости, если вы пересекли или не пересекли узел или край.

Чтобы записать это в файл, мне нужен вложенный цикл, который достигает каждого узла (вершины) и ребра на графике.

Я еще не нашел хороших обучающих программ о вложенных циклах с элементами в списках. Все просто говорить о for i in range(3): и т.д.

Это мой код до сих пор:

def Find_vertex(graphs): 

for key in graphs: 
    print(str(graphs[key][0][0][0])) 

Это печатает a1, но ... да, если я хочу, чтобы все, я должен использовать вложенную для цикла правильно?

Я действительно не знаю, как это работает. Ссылка на это объясняется, потому что я, похоже, не понимаю этого.

+2

Как структурирована 'данные Graphs'? Что такое узел, что такое край, почему в структуре есть другой словарь? –

+0

["a1", 0] представляет один узел. и ["e1", 0] представляет одно ребро. Дополнительный словарь представляет собой сопоставление между узлами и ребрами. Другие вопросы? – sockevalley

+0

Что означает «достижение« a1 »? Вы пытаетесь пересечь график? Что означают целые числа в списках узлов и ребер? Имеют ли они отношение к тому, как пройти график? –

ответ

0

Мое решение, потребовалось некоторое время.

Защиту save_graph (графики): строка = ""

tname = input("Skriv in namnet på filens namn: ") 

thand = open(tname, 'w') 

for key in graphs: 
    for objekt in graphs[key][0]: 
     string += str(objekt[0]) + "," 
     string += str(objekt[1]) + "," 
    string += ";" 
    string += "\n" 
#print(string) 

for key in graphs: 
    for objekt in graphs[key][1]: 
     string += str(objekt[0]) + "," 
     string += str(objekt[1]) + "," 
    string += ";" 
    string += "\n" 
for graf in graphs: 
    for key, value in graphs[graf][2].items(): 
     string += (key) + "," + (value[0]) + ";" 

string = string.replace(",;", "") 
string = string[:-1] 
print(string) 

thand.write(str(string)) 
thand.close()