Python nltk.lhs()在比较字符串时出现问题

Python nltk.lhs()在比较字符串时出现问题,python,nltk,Python,Nltk,分配string=i.lhs()其值时,然后与 print(var=='P')在var为'P'时返回false for i in grammar.productions(): var = i.lhs() P = "P" if (not i.is_nonlexical()): print var print (var == P) 它在任何情况下都返回false。我不明白为什么每件事都会返回false。有什么提示吗?您不能将lhs()-对象

分配
string=i.lhs()
其值时,然后与
print(var=='P')
var
'P'
时返回false

 for i in grammar.productions():
    var = i.lhs()
    P = "P"
    if (not i.is_nonlexical()):
        print var
        print (var == P)
它在任何情况下都返回false。我不明白为什么每件事都会返回false。有什么提示吗?

您不能将lhs()-对象与字符串进行比较,但可以使用
.lhs()。\uuu str\uuu()
获取对象的字符串表示形式,并将其与另一个字符串进行比较,如下所示:

for i in grammar.productions() :
   var = i.lhs()
   P = "P"
   if (not i.is_nonlexical()) :
       print var
       print (var.__str__() == P)
此外,您可以使用
is_lexical()
而不是询问它是否是非词法的