python - 如何使循环计算更快
问题描述
我想让这段代码计算得更快。我的代码有太多循环,我想减少它。如何最小化 for 循环和 while 循环。我的代码即将对英文单词进行划分,出现在字符串(String)文本中,3个字符,统计三组字符出现的频率。该函数的值为 dict,其中键是文本中三个字符的集合,值是该字符在键中出现的频率。必须是单词,如果长度小于3,频率计数不区分大小写('ant'和'Ant'是cadia)。字符必须定义为'a','in'等键。
def main():
text = "Thank you for help me"
print(three_letters_count(text))
def three_letters_count(text):
d = dict()
res = []
li = list(text.lower().split())
for i in li:
if len(i) < 3:
res.append(i)
while len(i) >= 3:
res.append(i[:3])
i = i[1:]
for i in res:
d[i] = res.count(i)
return d
if __name__ == '__main__':
main()
解决方案
您可以调整while
外观并将其切换为for
循环。
请参阅下面的调整功能。
def three_letters_count(text):
d = dict()
res = []
li = list(text.lower().split())
for i in li:
if len(i) < 3:
res.append(i)
for index in range(0, len(i)):
three_letter = i[index:index+3]
if(len(three_letter) >= 3):
res.append(three_letter)
for i in res:
d[i] = res.count(i)
return d
推荐阅读
- php - 从 SQL 单行中选择并设置为 php 数组
- bootstrap-4 - Yii2 - 将 Bootstrap 3 升级到 4
- r - R中的矩阵相关性
- netlogo - 不带引号的文件写入输出
- drupal - NameError:方法不可用报告
- xamarin.forms - 即使给出正确的 min 和 max sdk,应用程序在 Play 商店中发布时也会出错
- c - 如何将字符串作为函数参数传递
- php - API 平台不可变属性
- sql - 如何按列中存在的逗号分隔值对HANA中的降序进行排序或排序
- sustainsys-saml2 - Sustainsys.Saml2.Exceptions.InvalidSignatureException