由于字典变得太大,Python 函数花费的时间太长

标签 python performance dictionary

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/

相关文章:

python - 限制 TensorFlow 占位符的形状有何意义?

c++ - 停止小数点前的双除法(低精度,快速除法;只得到 'quotient' )

javascript - 提高 jQuery 性能的一些快速技巧是什么?

javascript - 如何排列映射而不是嵌套的 for 循环

python 3.5 在 statsmodels ImportError : cannot import name '_representation'

python - 如何从命令行探索 python 文件

无限生成器的Python产品

时间:: runtime code profiling - any existing libraries?

python - 两个字典(键和值)的递归差异?

python - 如何根据结尾用数字替换列表中的字符串?