gpt4 book ai didi

Python 循环改进

转载 作者:行者123 更新时间:2023-12-01 05:30:42 24 4
gpt4 key购买 nike

我想知道如何根据另一个数组中的单词有效地计算数组上单词的分布。

我们得到了单词数组 test,任务是将 test 中出现的单词聚合到新数组 s

for word in test:
if word not in s:
mydict[s.count(word)] = 0
else:
mydict[s.count(word)] += 1

此代码非常慢,部分原因是缺乏性能改进以及 Python 迭代速度非常慢的本质。

改进上述代码的最佳方法是什么?

最佳答案

您对测试中的每个单词重复计数迭代,使用 if word not in s 增加单词查找的开销。改进可能在于计算一次计数:

from collections import Counter
counts = Counter(s)

然后在第二遍中获取直方图:

distribution = Counter(counts[v] for v in set(test))

演示:

>>> test = list('abcdef')
>>> s = list('here comes the sun')
>>> counts = Counter(s)
>>> distribution = Counter(counts[v] for v in set(test))
>>> distribution
Counter({0: 4, 1: 1, 4: 1})

关于Python 循环改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20350728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com