【发布时间】:2016-12-10 14:10:29
【问题描述】:
我有一本这样的字典:
data = {1: [u'-', u's'], 2: [u'je', u'co', u'na'], ...}
KEY 是属于它的单词的长度。我想为长于 X 且短于 Y 的单词调用一个函数(计算 levenshtein 距离)。我该怎么做?
主要问题是获取字典长度,因为 len() 返回字典中的项目数,而不是键。
现在我是这样做的:
for k in data:
if k >= len(word)-distance and k <= len(word)+distance:
for item in data[k]:
if levenshtein(word, item) == distance:
words.append(item)
return words
【问题讨论】:
-
你到底卡在哪一部分?获取 X 和 Y 之间的键?访问这些键的值?对这些列表中的所有项目调用该函数?请具体。
-
pypi.python.org/pypi/python-Levenshtein/0.12.0 和 docs.python.org/2/tutorial/datastructures.html#dictionaries 将帮助您入门。发布你现在拥有的代码,你会得到更好的答案。
-
如果通过更改“for k in data”,我想摆脱第一个......对不起,我不清楚
-
请澄清您的帖子:
data是什么?那是字典的例子吗?X和Y是什么?他们是这个字典的关键吗?如果您询问如何在某些值之间获取 dict 的键,您可以这样做[k for k in data if X<k<y] -
你的代码缩进错误。此外,在 Python 中,您可以将语句编写为
if len(word)-distance <= k <= len(word)+distance:。请注意,与给定键k关联的列表长度仅为len(data[k])。
标签: python python-2.7 dictionary iteration