python-3.x - for 循环内的 for 循环运行时间过长
问题描述
这是运行时间过长的代码我想在每次重复驱动程序名称时增加访问次数
df['visites']=1
for i in range(len(df['CHAUFFEUR'])-1):
for j in range (i,len(df['CHAUFFEUR'])-1):
if df['CHAUFFEUR'][j] == df['CHAUFFEUR'][i]:
df['visites'][i]+=1
解决方案
这是一个解决方案,您可以“记住”您已经看到的人并跳过:
chauffeur = df['CHAUFFEUR']
# Save length in advance (it is used a few times)
length = len(chauffeur)
# Fill visits dictionary with default values for each chauffeur
visits = {}
for c in chauffeur:
visits[c] = 0
for i in range(length):
# If we saw this chauffeur, skip
if visits[chauffeur[i]]:
continue
for j in range(i, length):
if chauffeur[j] == chauffeur[i]:
visits[chauffeur[i]] += 1
df['visites'][j] = visits[chauffeur[i]]
推荐阅读
- java - Java猜数字游戏(不带扫描仪)
- c++ - 传递大括号初始化器列表参数时调用可变参数函数模板的问题
- mysql - 更新整个表的奖金计算的 MySql 程序
- java - 如何将字符串转换为 Json/maps
- python - Django:AttributeError:'AdminSite'对象没有属性'reqister'
- powershell - 用于从现代团队网站隐藏默认 WebPart 的 PowerShell 脚本或 Typescript
- python - 令牌列表而不是字符串上的正则表达式/glob
- batch-file - 如何更新包含特定字符串的现有文本文件中的行?
- python - Tkinter .tkrise() 和 .lift() 什么都不做
- node.js - 如何使用 SQlite 和 Javascript 创建带有子节点的节点?