当我想在字典中插入大量值时,如何提高python脚本速度?

时间:2017-01-24 14:15:39

标签: python list dictionary

我目前正在编写一个脚本,我需要在包含大规模数据的字典中为每个键插入一个值

for key, value in dict.items():
      score = somefunction(value)
      value.append(score)

字典有近10万个键,因此需要花费大量时间来计算..

我的朋友说" value.append"花了太多时间。 如果它不适用于value.append, 如何改进此脚本以提高计算速度? (我在网上搜索过,似乎有很多人在这种情况下使用value.append)

非常感谢您的回答。

1 个答案:

答案 0 :(得分:1)

value.append本身并不慢,实际上它有一个摊销的O(1)运行时。 问题在于你的算法本身,据我所知,你有100k个不同的列表,你可以为它们计算不同的分数并逐个更新。如果你的所有名单都是独一无二的,我担心没有办法提高速度,除非从根本上改变你存储分数的方式。

无论如何,我担心你的瓶颈在你计算得分的some_function中,因为迭代100k列表应该是微不足道的。一旦你开始浏览更多列表(百万/十亿),你可能想要另一种方式。你能在这里发布这个功能吗?

如果您的列表相同,那么创建一个主列表并将其保存到每个键可能是个好主意。然后,因为每个键都引用了相同的列表,所以更改其中一个键的列表会为每个其他键更改它。