本文共 1995 字,大约阅读时间需要 6 分钟。
掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费。
追求性能极限是一个有趣的游戏, 而过度优化就会变成嘲弄了。虽然Python授予你与C接口无缝集成的能力, 你必须问自己你花数小时的艰辛优化工作用户是否买帐. 另一方面, 牺牲代码的可维护性换取几毫秒的提升是否值得,团队中的成员常常会感谢你编写了简洁的代码。上一篇文章,这篇文章是继续补充一些提升性能的一些技巧
''''''''''''''''''''''''''''''''''''''''# 2019年2月11日 11点00分# 作者:cacho_37967865# 文件:highFunction2.py# 主题:提升Python程序性能的好习惯2'''''''''''''''''''''''''''''''''''''''''import threadingdef high_fun(): # 1.如何使用锁 lock = threading.Lock() # 创建锁 lock.acquire() try: print('使用锁的老方法') finally: lock.release() # 更好的方法 with lock: print('使用锁的新方法') # 2.如何打开和关闭文件 f = open('F:\\new.txt') try: data = f.read() print(data) finally: f.close() # 更好的方法 with open('F:\\new.txt') as f: data = f.read() print('打开文件更好的方法:',data) # 3.连接列表中字符串 names = ['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie'] s = names[0] for name in names[1:]: s += ', ' + name print(s) # 更好的方法 print(', '.join(names)) # 4.反向遍历列表 colors = ['red', 'green', 'blue', 'yellow'] for i in range(len(colors) - 1, -1, -1): print(colors[i]) # 更好的方法 for color in reversed(colors): print(color) # 5.遍历一个集合及其下标 colors = ['red', 'green', 'blue', 'yellow'] for i in range(len(colors)): print(i, '--->', colors[i]) # 更好的方法 for i, color in enumerate(colors): print(i, '-->', colors[i]) # 6.遍历两个集合 names = ['raymond', 'rachel', 'matthew'] colors = ['red', 'green', 'blue', 'yellow'] n = min(len(names), len(colors)) print("min()函数:",n) for i in range(n): print(names[i], '--->', colors[i]) # 更好的方法 for name, color in zip(names, colors): print(name, '-->', color) # 7.遍历一个字典的key和value d = {'id': 1,'nick_name': '十语荐书','content': '今日得到:'} # 并不快,每次必须要重新哈希并做一次查找 for k in d: print(k, '--->', d[k]) # 更好的方法 for k, v in d.items(): print(k, '-->', d[k])if __name__ == '__main__': high_fun()
转载地址:http://lrgii.baihongyu.com/