2015-09-27 3 views
2

Это для школьного проекта. Это программа, которая возвращает кратчайший путь из стартового слова в другое конечное слово, используя BFS. Мне нужно перепроверить начальное слово со списком слов, которые у меня есть, и сохранить это слово в списке, называемом детьми. Я хотел бы распечатать список «Дети», когда я запускал программу. Почему я не вижу список «Дети», когда я запускал программу?Вернуть список в python

import bintree 
import imp 
imp.reload(bintree) 
from queuelist import Queue 

class Word: 
    def __init__(self, w, f = None): 
     self.word = w 
     self.parent = f 


filename = 'word3u' 
fin=open(filename,'r') 

tree = bintree.Bintree() 

alist = fin.readlines() 

lista='abcdefghijklmnopqrstuvwxyz' 

doubles=bintree.Bintree()      

for ord in alist:        
    word=ord.strip() 
    tree.put(word) 

def generator(parent): 
    children=[] 
    theWord=parent.word 
    doubles.put(theWord) 
    #print(theWord) 
    n=0 
    while n<3: 
     for i in lista:          
      if n==0: 
       theWord=i+theWord[1:] 
       #print("1 "+theWord) 
      if n==1: 
       theWord=theWord[0]+i+theWord[2] 
       #print("2 "+theWord) 
      if n==2: 
       theWord=theWord[0:2]+i 
       #print("3 "+theWord) 
      if tree.exists(theWord): 
       #print("THIS " + theWord) 
       if not doubles.exists(theWord): 
        #print("THIS 2 " + theWord) 
        children.append(Word(theWord, parent))  
        doubles.put(theWord) 

     theWord=parent.word #reset theWord for next n 
     n+=1 
    return children 

generator(Word("fan")) 

ответ

2

Так как вы вернули childeren в вашей функции вам нужно напечатать ваш объект при вызове it.So просто сделать следующее:

print(generator(Word("fan"))) 
+0

Это не работает. Я получаю странную распечатку – DoubleOseven

+0

@ Mathguy007 Какой выход? – Kasramvd

Смежные вопросы