代码:
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”涵盖了Python性能优化的多个方面,包括数据结构的选择、函数和模块的运用、函数式编程、代码规范、性能分析以及利用科学计算库等。通过学习这个教程,你可以系统地提升自己...
【Python性能优化技巧1】 在Python编程中,性能优化是一个重要的方面,特别是在处理大量数据或对性能有较高要求的应用中。以下是一些Python性能优化的关键技巧和原理。 1. **少造轮子** - Python的标准库是经过...
通过对Python技术使用问题进行细致解答及优化策略的探讨,我们了解到,在Python编程中,合理地管理和优化内存及性能是非常关键的。无论是通过生成器、迭代器等技术来减少内存消耗,还是通过选择合适的数据结构、使用...
- 要求对Python的内置数据类型、变量作用域、变量查找顺序、动态获取和设置对象属性等知识点有深入理解。 - 涉及对函数调用参数的传递方式、函数装饰器、设计模式、内存泄露及其避免方法的考察。 3. Python编程技巧...
10. **性能优化**:提供了许多针对Python性能调优的技巧,如使用Cython或Numba进行性能提升,以及如何分析和优化代码性能。 通过阅读《Python Cookbook》第三版中文版,读者不仅可以提升自己的编程技能,还能了解到...
在Python编程领域,高效利用和优化是提升代码性能的关键。"Projet-Python-AI"项目专注于探索Python在人工智能领域的优化使用策略,旨在帮助开发者更好地应对大数据处理、机器学习模型训练以及高性能计算等挑战。以下...
例如,如何高效地查找、插入和删除元素,以及何时应该使用特定的数据结构来优化性能。 2. **函数式编程**:介绍Python中的函数式编程概念,如map、filter、reduce等高阶函数,以及lambda表达式、itertools模块和...
这本书详细介绍了如何针对Python的特性进行性能调优,涵盖了从基本的算法优化到高级的并行计算和内存管理等多个方面。 在Python编程中,性能优化通常涉及到以下几个关键知识点: 1. **数据结构选择**:Python提供...
Python提供了丰富的数据结构,如字典(dict)可以方便地模拟查找和替换操作,这对于实现缓存的替换策略(如LRU - 最近最少使用,LFU - 最少使用次数,或者随机替换等)非常有用。 1. **LRU(最近最少使用)**:当...
12. **Python优化**:了解性能调优技巧,如使用列表推导式代替循环,减少全局变量的使用,以及使用适当的数据结构等。 13. **Python设计模式**:单例模式、工厂模式、装饰器模式等常见设计模式的实现和应用。 14. ...
9. **性能优化**:提供了各种性能调优技巧,包括代码剖析、内存管理、C扩展和Python的`ctypes`库,帮助读者写出更快的Python代码。 10. **系统交互**:讲解了如何使用Python与操作系统进行交互,包括系统调用、文件...
作者Artem Zaleskovskiy可能是这个项目的创建者或主要贡献者,他可能在面试场景中设计了一些挑战性的任务来考察候选人在Python性能调优方面的知识和能力。 描述中提到的“面试任务”暗示了这是一个针对Python开发者...
8. **性能优化**:探讨了Python的性能分析和调优技术,包括使用cProfile模块进行性能分析,以及如何编写C扩展来提升速度。 9. **网络编程**:涵盖网络通信的基本概念,如套接字编程,以及如何使用HTTP、FTP等协议...
- 字典(Dictionary):键值对的无序集合,通过键进行快速查找,是Python中效率极高的数据结构。 2. **进阶数据结构** - 双向链表(Doubly Linked List):每个节点包含前一个和后一个节点的引用,方便双向遍历。 - ...
11. **程序设计与优化**:最后,书中会涉及程序设计原则和优化技巧,如代码复用、性能调优和异常处理策略,帮助读者写出更高效、可维护的Python代码。 通过阅读《Python编程精要第二版》,读者不仅可以掌握Python...
最后,提升编程技巧包括代码重构、优化和性能调优。Python的性能可能不如C++或Java,但通过使用生成器、列表推导式、装饰器等高级特性,以及对算法和数据结构的深入理解,可以显著提高代码执行速度。 总的来说,...
在Python中实现机器学习算法,我们需要理解每个模型的工作原理,熟悉其参数调优,以及如何评估模型性能。交叉验证(cross-validation)和网格搜索(grid search)等技术可以帮助我们找到最优模型配置。同时,理解和...
在Python编程中,性能调优是提高代码运行效率的关键步骤,它涉及到内存管理、算法优化、并发处理等多个方面。让我们深入探讨一下这个话题。 在Python中,性能优化通常包括以下几个方面: 1. **算法优化**:选择...
25. **测试、调试、探查与调优**:Python提供了丰富的测试框架(如unittest)、调试工具(如pdb)和性能分析方法。 以上只是手册中部分内容的概述,实际手册会更详细地讲解每个概念,并提供示例代码和最佳实践。...
15. **代码优化**:了解Python的性能调优技巧,如列表推导式、生成器表达式、使用map、filter和reduce等高阶函数,以及利用Pypy等JIT编译器提升执行效率。 通过这个"codingTest_python"项目,我们可以学习如何使用...