来自 mobypos.txt 文件的 Python 字典

标签 python performance dictionary

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

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

血红蛋白是一个名词,hemoid是一个形容词,而hemophile可以用作名词或形容词。

我使用以下代码从此文件创建了一个字典,将单词与指示其词性的字母配对:

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

此操作成功。我想要做的是生成名为名词动词形容词等的列表,其中包含该词性的所有单词。鉴于 len(posdict.keys()) 返回 233340

,最快的方法是什么

最佳答案

您可以使用列表理解

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运算符将相应地放置多种类型的单词。

关于来自 mobypos.txt 文件的 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31587846/

相关文章:

python - 如何通过连接从数据库查询生成嵌套 JSON?使用 Python/SQLAlchemy

python - Pandas 每天新专栏

mysql - 查询执行时间较长,大约 120 秒

java - 使用接口(interface)实例化和具体类实例化之间的区别? (HashMap、Map & List、ArrayList)

java - 如何在Java中使用键名及其值存储数据?

Python:如何使用字典调用方法(字典中的值)以根据用户输入(字典中的键)在不同的函数中运行?

python - Pandas 跨记录扩展 json 字段

python - Aptana Studio 中黑底黑字显示的文本

c# - 哪个更快?++、+= 或 x + 1?

mysql - 使用 NOT IN 查询是否比使用 IN 查询更快?