0

我有以下设置:

co_occurrences = defaultdict(lambda: defaultdict(int))
# Populate the dictionary...

for word, occurrence_vector in co_occurrences:
    if word == "__length": continue

    for file_name, occurrence_count in occurrence_vector:
        co_occurrences[word][file_name] = occurrence_count / co_occurrences["__length"][file_name] 

这条线是:

co_occurrences[word][file_name] = occurrence_count / co_occurrences["__length"][file_name]

危险的?所谓危险,我的意思是我想对每个键进行一次且仅一次迭代,因此任何修改此行为的代码都是危险的。我觉得可能是因为我正在修改我正在迭代的数据结构。

4

2 回答 2

3

如前所述,这通常很好,唯一的问题是如果字典的大小发生变化。如果发生这种情况,它会抛出一个Exception并停止执行,所以如果它在没有 a 的情况下执行RuntimeError,那么无论你在做什么都很好。

于 2013-06-13T07:02:50.300 回答
2

仅当您更改正在迭代的数据的结构时,这才是危险的,即。添加/删除键,否则编辑现有键是完全可以的。

于 2013-06-13T07:00:12.070 回答