def check(script):
filename = r'F:\klm\wordservice\data\Cizu_and_singleword_komoxo95K.txt'
script_compile = compile(script, '', 'eval')#预编译,耗时操作,列表解析中直接执行eval(),每次都会编译
with codecs.open(filename, encoding='utf-8') as f:
file_set = set([line.split('\t')[0] for line in f.readlines() if eval(script_compile)])
print len(file_set)
script = "len(line.split('\t')[0]) > 1"
check(script)
script 代码作为一条语句传入python,python通过eval(),来执行该语句,其返回值作为列表解析的判断标准
compile(script, '', 'eval'),是编译script,其返回值可以通过eval()函数进行调用。。。