我不理解python中的以下代码:
def frequency(text):
if text == "":
return ""
cuvinte = text.split(" ")
frecv = {}
for cuv in cuvinte:
try:
frecv[cuv] += 1
except:
frecv[cuv] = 1
print (frecv)
例如,如果我运行:
frequency('zero one two three one four two one five')
它将向我们展示:
{'four': 1, 'three': 1, 'two': 2, 'one': 3, 'five': 1, 'zero': 1}
但为什么呢?你怎么了
try:
frecv[cuv] += 1
except:
frecv[cuv] = 1 ?
try..except..
是exception handling mechanism in Python。你知道吗这个块意味着,当
freecv[cuv] += 1
失败时(在这种情况下,当freecv
中没有任何cuv
),它运行freecv[cuv] = 1
。简单地说,它首先尝试增加单词的计数,当它失败(因为该单词还没有添加)时,它使用1。你知道吗顺便说一下,这些代码可以编写得简单得多:
这将处理
KeyError
异常。frecv[cuv] += 1
等价于frecv[cuv] = frecv[cuv] + 1
,这意味着cuv
键必须存在于字典中。因此,代码可以理解为“如果cuv
有一个值,则将其加1;否则将其设置为1”。你知道吗一个更优雅的写作方式是
当您执行
frecv[cuv] += 1
时,实际上是在检索frecv[cuv]
的当前值,将1添加到该值,然后将其分配给frecv[cuv]
。当frecv[cuv]
还没有任何值时,就无法检索它,因此会发生异常(KeyError
)。你知道吗相关问题 更多 >
编程相关推荐