为了账号安全,请及时绑定邮箱和手机立即绑定

在迭代集合时修改集合是否存在任何危险?

在迭代集合时修改集合是否存在任何危险?

杨魅力 2021-03-29 21:19:19
我有以下设置: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]危险的?危险是指我只希望一次又一次地遍历每个键,因此任何修改此行为的代码都是危险的。我感觉可能是因为我正在修改要遍历的数据结构。
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

如前所述,通常很好,只有字典大小改变时才会出现问题。如果发生这种情况,它将抛出Exception并停止执行,因此如果执行时不带RuntimeError,那么您所做的一切都很好。


查看完整回答
反对 回复 2021-04-01
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

仅当更改要迭代的数据的结构(即)时,这才是危险的。添加/删除密钥,否则完全可以编辑现有密钥。


查看完整回答
反对 回复 2021-04-01
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信