Python dict来自mobypos.txt文件金融机构

2024-06-28 21:01:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个来自Moby Project的文件,它将单词与一个或多个表示其词性的字母配对。例如:

hemoglobin\N
hemogram\N
hemoid\A
hemolysin\N
hemolysis\N
hemolytic\A
hemophile\NA
hemophiliac\N

血红蛋白是一个名词,类血红素是一个形容词,嗜血杆菌可以用作名词或形容词。你知道吗

我从这个文件中创建了一个dict,它使用以下代码将单词与表示其词性的字母配对:

mm = open("mobypos.txt").readlines()
pairs = []
for x in mm:
    pairs.append(x.split("\\"))
posdict = dict(pairs)

这是成功的。我要做的是生成名为nounsverbsadjectives等的列表,其中包含这个词性的所有单词。如果len(posdict.keys())返回233340,那么最快的方法是什么


Tags: 文件project字母单词dictmm名词词性
2条回答

你可以使用列表理解

nouns = [word, type in posdict.iteritems() if 'N' in type]

adjs = [word, type in posdict.iteritems() if 'A' in type]

verbs = [word, type in posdict.iteritems() if 'V' in type]

if子句中使用in运算符将相应地放置具有多种类型的单词。你知道吗

可以使用生成器表达式来获取相关词的迭代器:

nouns = (w for w,type in posdict.iteritems() if type=='N')

但是请注意,由于迭代器是一次性的iterables,当您只想对它们进行迭代,而不想获取特定的项或使用一些函数(如len)时,最好使用它们,它们在内存使用方面非常优化。但如果你想经常使用它们,最好使用列表理解。你知道吗

nouns = [w for w,type in posdict.iteritems() if type=='N']

相关问题 更多 >