2013-03-04 137 views
0

在分配string = i.lhs()它的價值,然後再與 print (var == 'P')返回false比較時var'P'NLTK .lhs()問題與比較字符串

for i in grammar.productions(): 
    var = i.lhs() 
    P = "P" 
    if (not i.is_nonlexical()): 
     print var 
     print (var == P) 

它在任何情況下都返回false。我不明白爲什麼它會在所有事情上返回錯誤。任何提示?

回答

0

你不能比較LHS() - 對象與字符串,但您可以用.lhs().__str__()獲取對象的字符串表示,和比較,與另一個字符串,像這樣:

for i in grammar.productions() : 
    var = i.lhs() 
    P = "P" 
    if (not i.is_nonlexical()) : 
     print var 
     print (var.__str__() == P) 

此外,您還可以使用is_lexical()而不是詢問是否爲非非彈性