当前位置: 首页 > 科技观察

写的代码又被喷了?8种方法让你的代码更Pythonic

时间:2023-03-13 15:07:11 科技观察

Python是一门非常灵活的语言,很多语法是其他语言所没有的,特别是对于从C、Java等语言转Python的人来说,很容易跟上C、Java等语言都是用来写Python的。对于初学者来说,如果对Python语言的理解不够透彻,就会写出非常冗余的代码。本文主要介绍几个简单的技巧,让你写出更Pythonic的Python代码。变量交换Pythonic写法循环遍历区间元素的普通写法在Python2中,有range和xrange两种写法,xrange是generator写法,比较节省内存。Python3中的range等同于Python2中的xrange。生成器只有在使用的时候才会动态生成,而且只能使用一次,比如range(1000000)。在Python2中,会在内存中生成100万个元素的列表,而在Python3中,不会生成列表,而是Generator,占用内存非常少。如果你还在使用Python2,建议使用xrange而不是Java中的range。GeneratorExtendedIndexPythonicWriting普通写法显然,Pythonic写法更加直观和优雅。StringconcatenationPython写法普通写法每次+运算都会生成一个新的字符串,造成内存浪费,而join,整个过程只会生成一个字符串对象文件打开和关闭Python写法普通写法配合使用,Python会自动管理文件的流的打开和关闭不需要手动操作列表。Pythonic写法也可以用来删除Pythonic写法中的第一个元素。但是,列表是按顺序存储在内存中的。删除第一个元素会导致后面的所有元素都往前移,效率很低,和插入类似。如果一开始有大量的删除和插入操作,避免使用列表解构赋值。Pythonic书写词典类似。在Python2中,字典的items方法将返回一个列表。当字典比较大时,这会消耗大量内存。iteritems方法返回一个生成器。Python3中没有iteritems,items相当于Python2的iteritems。如果你使用的是Python2,请使用iteritems而不是items推导Pythonic写法普通写法

猜你喜欢