考虑以下Python代码,它遍历一个单词数组并将它们计数到字典
问题是,Python是否已经优化了对
a ['words']
中。a['words'] = {}
for word in words:
if word not in a['words']:
a['words'][word] = 0
a['words'][word] += 1
问题是,Python是否已经优化了对
a['words']
的重复访问,以便自动保存a['words']
的引用直到更改,还是我应该自己编写“优化”的代码,如下所示:a['words'] = {}
words_dict = a['words']
for word in words:
if word not in words_dict:
words_dict[word] = 0
words_dict[word] += 1
a['words'] = words_dict = {}
。 - juanpa.arrivillagacollections.defaultdict(lambda: 0)
进行优化,然后避免为每个单词进行初始化,直接使用for word in words: a['words'][word] += 1
。 - pawamoya
是一个dict
,而且像a['words']
这样的表达式对于任何定义了__getitem__
方法的类型都可以起作用,这可能会导致一些问题。 - juanpa.arrivillaga