【问题标题】:dictionary in python 2.7python 2.7中的字典
【发布时间】:2014-03-04 21:17:55
【问题描述】:

我是 python 新手,我有一个问题。 在这个脚本中,我重命名了一个字符串的元素。 对于较小的输入 z

时间问题是字典造成的吗? 我应该尝试通过列表还是集合来接近它? 我看过这篇文章Python: List vs Dict for look up table,关于字典比列表更好。我有点困惑。

【问题讨论】:

  • 你到底想做什么?我理解代码的作用,但我很好奇它的应用。你为什么要这样做?
  • 更加明确,特别是zd 是什么?还有一个名为timeit 的有用模块,它可以手动完成您在此处所做的事情(计时代码执行)。
  • 输入是一个反转文件,所以我尝试重命名所有记录以减少 DGaps

标签: python optimization dictionary


【解决方案1】:

首先,if word in d.keys() 非常慢,因为它每次都会构建包含所有 d 键的列表。你应该改用if word in d(它快得多,因为它不会创建新的对象)

【讨论】:

  • 另外,if word in d.keys() 进行 list 搜索(线性时间); if word in d 进行字典搜索(恒定时间)。
  • @nneonneo 好吧...不是真的恒定:wiki.python.org/moin/TimeComplexity
  • @Dunno:摊销/预期恒定时间。 (我打算掩盖“摊销”位,因为它与比较无关)
【解决方案2】:

你应该试试

result = [(item, count(item)) for item in set(the_list)]    

因为您的代码基本上是在计算列表中一个单词的幻影数量。

查看这个 SO 问题 --> how to optimally count elements in a python list

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多