在pprint中运行时调用

时间:2016-09-20 02:56:45

标签: python python-2.7 function pprint

如何在运行时传递pprint内的值?

import nltk, sys
from pprint import pprint
from nltk.corpus import framenet as fn
#Word = raw_input("enter a word: ")
pprint(fn.frames(r'(?i)Medical_specialties'))
f = fn.frame(256)
f.ID
f.name
f.definition
print f
print '\b'
pprint(sorted([x for x in f.FE]))
pprint(f.frameRelations)
print

在运行时,我需要从用户那里获取一个单词并将其传递给fn.frames函数来代替Medical_specialties,后者又将一个帧列表作为与该单词相关的帧ID。然后我可以调用这些数字进一步查询。

输出:

[<frame ID=256 name=Medical_specialties>]

1 个答案:

答案 0 :(得分:1)

虽然您恰好使用nltk,但您的问题与此无关(或者与pprint无关):您需要从用户输入字符串,然后坚持"(?i)"在前面构建你想要的正则表达式。

由于这就是您需要做的所有事情,最简单的解决方案是:

word = raw_input("enter a word: ")
rexp = "(?i)" + word
pprint(fn.frames(rexp))

将字符串放在一起的更强大的方法是使用python的C-style string formatting或更新的format()语法。例如,要在输入“word”之前和之后指定单词边界,你可以这样做(C风格的语法):

rexp = r"(?i)\b%s\b" % word

您可能会发现上述链接难以消化,因此请尝试this expositionthis high-voted SO question.