def assign_ID(dic,id):
for key, value in enumerate(dic):
for elem in range(value):
if id in dic[value]:
return value
我上面的函数完成了我想要它做的事——但问题是,随着我程序主要部分中的字典 dic 变得越来越大,我的“assign_ID”函数花费了太长的时间。最初这个函数运行大约需要 1/100 秒,但在几千行输入之后,它开始需要半秒,然后是一整秒,然后更长。问题是我的输入文件太大,最终这个函数使整个程序至少需要整整两天才能运行。
有没有办法重写上面的函数,让它运行得更快?我希望能够定期运行这个程序,所以我真的希望它运行得比现在快。
非常感谢您的帮助!
最佳答案
好吧,直接摆脱enumerate
。此外,您的第二个 for 循环什么也不做。也摆脱它:
def assign_ID(dic, id):
for key in dic:
if id in dic[key]:
return key
上面的函数应该做你的旧函数做的所有事情,只是它会快得多。
关于由于字典变得太大,Python 函数花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408007/