`
uuu999ggg
  • 浏览: 42580 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

python性能调优---优化字典查找

 
阅读更多

代码:

 

charToSoundex = {"A": "9",
"B": "1",
"C": "2",
"D": "3",
"E": "9",
"F": "1",
"G": "2",
"H": "9",
"I": "9",
"J": "2",
"K": "2",
"L": "4",
"M": "5",
"N": "5",
"O": "9",
"P": "1",
"Q": "2",
"R": "6",
"S": "2",
"T": "3",
"U": "9",
"V": "1",
"W": "9",
"X": "2",
"Y": "9",
"Z": "2"}
def soundex(source):
# ... input check omitted for brevity ...
    source = source[0].upper() + source[1:]
    digits = source[0]
    for s in source[1:]:
        s = s.upper()
        digits += charToSoundex[s]

 

 测试性能

 

C:\samples\soundex\stage1>python soundex1c.py

Woo W000 14.5341678901
Pilgrim P426 19.2650071448
Flingjingwaller F452 30.1003563302

 

 

优化代码2

def soundex(source):
# ...
source = source.upper()
digits = source[0] + "".join(map(lambda c: charToSoundex[c], source[1:]))

 测试性能

C:\samples\soundex\stage2>python soundex2a.py
Woo W000 15.0097526362
Pilgrim P426 19.254806407
Flingjingwaller F452 29.3790847719

 匿名函数的开销抵消了用过把string作为一组字符进行出来带来的性能优化

 

优化代码3

source = source.upper()
digits = source[0] + "".join([charToSoundex[c] for c in source[1:]])

 测试性能

C:\samples\soundex\stage2>python soundex2b.py
Woo W000 13.4221324219
Pilgrim P426 16.4901234654
Flingjingwaller F452 25.8186157738

 可以字符串处理最好用list

 

优化代码4

 

allChar = string.uppercase + string.lowercase
charToSoundex = string.maketrans(allChar, "91239129922455912623919292" * 2)
def soundex(source):
    # ...
    digits = source[0].upper() + source[1:].translate(charToSoundex)

 测试性能

 

C:\samples\soundex\stage2>python soundex2c.py
Woo W000 11.437645008
Pilgrim P426 13.2825062962
Flingjingwaller F452 18.5570110168

 string.maketrans创建了字符和数字之间转换的联系,这种数据结构比map要快很多

 

 

 

分享到:
评论

相关推荐

    python自学教程-04-代码调优.ev4.rar

    总之,“python自学教程-04-代码调优.ev4”涵盖了Python性能优化的多个方面,包括数据结构的选择、函数和模块的运用、函数式编程、代码规范、性能分析以及利用科学计算库等。通过学习这个教程,你可以系统地提升自己...

    python性能优化的技巧1

    【Python性能优化技巧1】 在Python编程中,性能优化是一个重要的方面,特别是在处理大量数据或对性能有较高要求的应用中。以下是一些Python性能优化的关键技巧和原理。 1. **少造轮子** - Python的标准库是经过...

    Python技术使用问题解答与调优.docx

    通过对Python技术使用问题进行细致解答及优化策略的探讨,我们了解到,在Python编程中,合理地管理和优化内存及性能是非常关键的。无论是通过生成器、迭代器等技术来减少内存消耗,还是通过选择合适的数据结构、使用...

    Python面试大全

    - 要求对Python的内置数据类型、变量作用域、变量查找顺序、动态获取和设置对象属性等知识点有深入理解。 - 涉及对函数调用参数的传递方式、函数装饰器、设计模式、内存泄露及其避免方法的考察。 3. Python编程技巧...

    Python Cookbook 第三版中文v1.0.2.mobi

    10. **性能优化**:提供了许多针对Python性能调优的技巧,如使用Cython或Numba进行性能提升,以及如何分析和优化代码性能。 通过阅读《Python Cookbook》第三版中文版,读者不仅可以提升自己的编程技能,还能了解到...

    Projet-Python-AI:Python语言的优化使用解决方案

    在Python编程领域,高效利用和优化是提升代码性能的关键。"Projet-Python-AI"项目专注于探索Python在人工智能领域的优化使用策略,旨在帮助开发者更好地应对大数据处理、机器学习模型训练以及高性能计算等挑战。以下...

    PythonCookbook3rd.pdf

    例如,如何高效地查找、插入和删除元素,以及何时应该使用特定的数据结构来优化性能。 2. **函数式编程**:介绍Python中的函数式编程概念,如map、filter、reduce等高阶函数,以及lambda表达式、itertools模块和...

    High Performance Python

    这本书详细介绍了如何针对Python的特性进行性能调优,涵盖了从基本的算法优化到高级的并行计算和内存管理等多个方面。 在Python编程中,性能优化通常涉及到以下几个关键知识点: 1. **数据结构选择**:Python提供...

    用于模拟各种计算机缓存的Python程序.zip

    Python提供了丰富的数据结构,如字典(dict)可以方便地模拟查找和替换操作,这对于实现缓存的替换策略(如LRU - 最近最少使用,LFU - 最少使用次数,或者随机替换等)非常有用。 1. **LRU(最近最少使用)**:当...

    Python面试题 附 答案

    12. **Python优化**:了解性能调优技巧,如使用列表推导式代替循环,减少全局变量的使用,以及使用适当的数据结构等。 13. **Python设计模式**:单例模式、工厂模式、装饰器模式等常见设计模式的实现和应用。 14. ...

    python cookbook(第3版) 中文 文字完整PDF版

    9. **性能优化**:提供了各种性能调优技巧,包括代码剖析、内存管理、C扩展和Python的`ctypes`库,帮助读者写出更快的Python代码。 10. **系统交互**:讲解了如何使用Python与操作系统进行交互,包括系统调用、文件...

    面试_PerfLab_python:性能实验室的面试任务,作者Artem Zaleskovskiy

    作者Artem Zaleskovskiy可能是这个项目的创建者或主要贡献者,他可能在面试场景中设计了一些挑战性的任务来考察候选人在Python性能调优方面的知识和能力。 描述中提到的“面试任务”暗示了这是一个针对Python开发者...

    [Python.Cookbook(第2版)中文版].(美)马特利(美)阿舍尔.扫描版.pdf

    8. **性能优化**:探讨了Python的性能分析和调优技术,包括使用cProfile模块进行性能分析,以及如何编写C扩展来提升速度。 9. **网络编程**:涵盖网络通信的基本概念,如套接字编程,以及如何使用HTTP、FTP等协议...

    Python 开源项目,保姆级教程:AI实验室、宝藏视频、数据结构、学习指南、机器学习实战、深度学习实战、网络爬虫、大厂面经

    - 字典(Dictionary):键值对的无序集合,通过键进行快速查找,是Python中效率极高的数据结构。 2. **进阶数据结构** - 双向链表(Doubly Linked List):每个节点包含前一个和后一个节点的引用,方便双向遍历。 - ...

    A Concise Introduction to Programming in Python(2nd).zip

    11. **程序设计与优化**:最后,书中会涉及程序设计原则和优化技巧,如代码复用、性能调优和异常处理策略,帮助读者写出更高效、可维护的Python代码。 通过阅读《Python编程精要第二版》,读者不仅可以掌握Python...

    competitive-programming-python

    最后,提升编程技巧包括代码重构、优化和性能调优。Python的性能可能不如C++或Java,但通过使用生成器、列表推导式、装饰器等高级特性,以及对算法和数据结构的深入理解,可以显著提高代码执行速度。 总的来说,...

    数据结构和算法的python实现、以及Python实现机器学习算法.zip

    在Python中实现机器学习算法,我们需要理解每个模型的工作原理,熟悉其参数调优,以及如何评估模型性能。交叉验证(cross-validation)和网格搜索(grid search)等技术可以帮助我们找到最优模型配置。同时,理解和...

    TuningHandler

    在Python编程中,性能调优是提高代码运行效率的关键步骤,它涉及到内存管理、算法优化、并发处理等多个方面。让我们深入探讨一下这个话题。 在Python中,性能优化通常包括以下几个方面: 1. **算法优化**:选择...

    Python 参考手册第四版(修订版)1

    25. **测试、调试、探查与调优**:Python提供了丰富的测试框架(如unittest)、调试工具(如pdb)和性能分析方法。 以上只是手册中部分内容的概述,实际手册会更详细地讲解每个概念,并提供示例代码和最佳实践。...

    codingTest_python

    15. **代码优化**:了解Python的性能调优技巧,如列表推导式、生成器表达式、使用map、filter和reduce等高阶函数,以及利用Pypy等JIT编译器提升执行效率。 通过这个"codingTest_python"项目,我们可以学习如何使用...

Global site tag (gtag.js) - Google Analytics