Python性能鸡汤 一文见:http://www.oschina.net/question/1579_45822
下面是关于其中一些点,我的实践:
1. 内建函数:
2. join()连接字符串:
l=['aa','bb'] mystring = ",".join(l) print mystring import string ss=['hehe','haha',"xixi"] print string.join(ss,'')
[work@cq01-testing-sdcads-vir43.vm.baidu.com script]$ python test.py
aa,bb
hehehahaxixi
8. list comprehension
漂亮地实现 python 数组遍历
>>> arrayA = [1,2,3,4,5,6,7] >>> arrayB = [ number for number in arrayA if number % 2 ] >>> print arrayB [1, 3, 5, 7]
我们把这段代码用括号分成三个部分:(number) (for number in arrayA) (if number % 2)
第一部分,表明我们的新数组的元素表示为number;
第二部分,是说number是取之于数组arrayA的遍历;
第三部分,是说是否产生该元素的条件,即当number取2的模为非0数的时候(奇数)就选取该number。
下面的例子使用了2個 for
nums = [1,2,3] fruit = ["Apples", "Peaches", "Bananas"] print [(i,f) for i in nums for f in fruit]
上面的程式會印出
[(1, 'Apples'), (1, 'Peaches'), (1, 'Bananas'),
(2, 'Apples'), (2, 'Peaches'), (2, 'Bananas'),
(3, 'Apples'), (3, 'Peaches'), (3, 'Bananas')]
下面的例子使用了2個 for 跟2個 if
nums = [1,2,3]
fruit = ["Apples", "Peaches", "Bananas"]
print [(i,f) for i in nums for f in fruit if i % 2 == 1 if f[0] == 'P']
上面的程式會印出
[(1, 'Peaches'), (3, 'Peaches')]
摘自:
http://blog.ipattern.org/archives/600
http://descriptor.blogspot.com/2008/11/python-idiom-list-comprehensions.html
9. xrange()替代range()
据说range比xrange开销要大,原因是range会直接生成一个list对象,而xrange每次调用返回其中的一个值;参考:http://yushunzhi.iteye.com/blog/207850。于是好奇做了个小小的测试,比较两个函数性能到底有多大差别。
#!/usr/bin/env python from datetime import * def test_range(): c1=0 t1 = datetime.now() for i in range(0,100000): c1 += 1 print datetime.now()-t1 def test_xrange(): c1=0 t1 = datetime.now() for i in xrange(0,100000): c1 += 1 print datetime.now()-t1 if __name__ == '__main__': test_range() test_xrange()
结果
从上图的三次运行结果可以看出,range在相同计算量下用时比xrange多了70%左右。另外,在不同的计算量情况下,用时基本也维持在这个比例。因此,如果并不需要返回list对象的话,xrange会是个好选择。
11. itertools模块: 排列组合
>>> import itertools >>> iter=itertools.permutations([1,2,3]) >>> print iter <itertools.permutations object at 0x2a9566c3b0> >>> tuple(iter) ((1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)) >>> tuple(iter) #用完一次就没了 () >>> >>> import itertools >>> iter=itertools.permutations([1,2,3]) >>> list(iter) [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)] >>> list(iter) []
>>> test = combinations([1,2,3,4], 2) >>> for el in test: ... print el ... (1, 2) (1, 3) (1, 4) (2, 3) (2, 4) (3, 4)
相关推荐
在Python编程领域,高...以上只是Python进阶和高性能编程的一部分知识点,实际应用中还需要结合具体问题进行深入研究和实践。通过阅读《Python高性能编程》这本书,你可以获得更全面的指导,提升你的Python编程技能。
而“python_sam评价”和“sam”标签则进一步确认了使用Python语言处理SAM文件的事实,以及对SAM文件处理的评价可能是这个项目的一部分。 压缩包内的文件“陈飞雁_BGI13200_python考核_最终版1”可能是一个程序或...
Python是一种广泛使用的高级编程语言...在"Python高性能编程"的源码中,可能包含了上述各个方面的示例和实践,通过学习和研究这些源码,可以加深对Python性能优化的理解,并将所学应用到实际项目中,提升代码执行效率。
本资源集合提供了一些基于Python的故障诊断程序,旨在帮助故障诊断学者深入理解和实践这一领域。以下将详细探讨Python故障诊断的关键知识点。 1. 错误与异常处理:在Python中,错误分为语法错误(SyntaxError)和...
Python_python小波_python小波_python小波变换_python小波变换_python_源码.rar.rar
python编程资料,实用,可自行学习.除此之外还可学习机器学习算法。
在本实践项目“PYTHON_TRAIN_Pythontrain_pythontrain()_python简单练习_pythontrain_tr”中,我们专注于使用Python语言进行基础的编程练习,特别是涉及到文件操作和数据预处理方面。这个项目旨在帮助初学者巩固对...
在"潮流计算 python.zip"这个压缩包中,可能包含有Python脚本、数据文件、说明文档等,帮助用户了解和实践如何利用Python进行潮流计算。文件名"潮流计算 python"可能是指一个包含实现潮流计算的Python脚本或者教程的...
在本项目中,"Python大作业_外星人游戏_Python外星人大作业_python大作业_Python游戏_every32h_" 提供了一个Python编程实践的机会,特别关注于开发一款外星人射击游戏。游戏设计包括了多个核心元素,如玩家控制、...
本资料包"Python_LZB_Test_upload.rar"似乎是一个针对Python初学者的图像处理和机器学习项目,它涵盖了如何利用Python进行图像处理的基础知识和应用。 首先,让我们关注一下PIL库。PIL是Python标准的图像处理库,...
在这个名为"my_SVM_svmpython_python_SVM_"的项目中,开发者可能已经实现了SVM的基本操作,包括训练模型、预测以及可能的参数调优。项目包含的文件列表表明它可能与手写数字识别有关,因为有多个以数字命名的.jpg...
这个过程不仅增强了Python的功能,而且使得我们可以利用已有的C代码库,提高了代码的复用性和性能。不过,需要注意的是,跨语言交互可能会引入一些兼容性和性能问题,因此在设计和实现时需要仔细考虑和测试。
本资源“python_ppt.rar”包含了Python语言的详细教学课件,可以帮助你全面了解并掌握Python编程。 首先,从标题我们可以推断,这个压缩包包含了一系列关于Python的PPT教程。PPT(PowerPoint)是一种常见的演示文稿...
`python_logstash_async_dwn`库通过异步方式发送日志,能够在不影响主程序性能的情况下,有效地处理大量日志数据。异步处理意味着在发送日志时,程序的其他部分可以继续执行,提高了整体效率。 使用`python_...
《Python编程:从入门到实践》是一本针对初学者的Python编程指南,旨在帮助读者从零基础快速掌握Python语言,并能将其应用到实际项目中。这本书由作者Hunterhsm编写,深入浅出地介绍了Python 3的核心概念和常用库,...
7. **性能优化**: Python 3.8在底层进行了许多优化,包括编译器的改进和内存管理的调整,以提升整体性能。 8. **错误和异常处理**: 错误报告和异常处理机制也得到了改进,提供了更详尽的错误信息,便于调试。 这份...
OpenCV是一个强大的计算机视觉库,它包含了一些预处理工具,可以帮助优化图像以提高OCR的性能。`easyocr`则是一个更易于使用的OCR库,它不需要额外的本地安装,提供了更快的识别速度和更好的用户体验。 在实际应用...
**Python库aws_sam\_cli-0.8.0-py2-none-any.whl详解** 在IT行业中,Python库aws\_sam\_cli是用于AWS Serverless Application Model (SAM)开发和部署的重要工具。这个名为“aws\_sam\_cli”的Python库版本为0.8.0,...
标题“Python_Tools_for_Visual_Studio”和描述“在VS中使用Python进行开发”提示我们,本文将探讨的是在Visual Studio集成开发环境(IDE)中使用Python工具进行开发的相关知识点。 首先,了解Visual Studio是一个...
**Fiddler4_3259:Python抓包与Fiddler结合的实战指南** 在互联网开发过程中,网络请求...通过深入学习和实践,你将能够熟练掌握`Fiddler4`和`Python`的结合使用,提升网络开发和调试的效率,解决各种复杂的网络问题。