【问题标题】:Time complexity of zip_longest?zip_longest 的时间复杂度?
【发布时间】:2021-06-30 13:14:56
【问题描述】:

我想在一个键上加入两个字典列表,我看到了以下在 Python 3.5+ 中使用 zip_longest 的答案。在我的情况下与join two lists of dictionaries on a single key的问题相同。

但是,我没有发现这种方法的效率如何。如果我将它用于长列表,它应该可以正常工作吗?

【问题讨论】:

  • 应该很容易使用timeit 模块进行测试。
  • @KlausD:timeout 不决定时间复杂度——只决定执行某件事需要多长时间。
  • @martineau 好吧,如果您在谈论时间复杂度,这不是您感兴趣的价值吗?当然,您必须使用合理的样本量多次进行。
  • @KlausD:不,计算复杂度描述了运行算法所需的计算机时间量,通常与输入的大小有关,并以“大 O”表示法表示(不是执行时间或每单位时间的处理速率)。请参阅@ Faboor 的回答。另请参阅有关该主题的Wikipedia article

标签: python python-3.x list dictionary join


【解决方案1】:

zip_longest 将在最长列表上创建一个迭代器。因此,如果您随后将其全部消费,它将是O( length_of_longest_list )

像这样合并字典的过程是否有效是一个完全不同的问题:)

【讨论】:

  • 我的情况有什么更有效的方法吗?
  • @ChikChak:值得怀疑,因为列表中的每个字典都必须进行处理,因此本质上它是一个 O(n) 任务。
猜你喜欢
  • 2016-02-13
  • 2012-08-14
  • 2013-09-12
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多