写的代码又被喷?8招让你的代码更Pythonic
Python是一门非常灵活的语言,很多语法是其他语言不具备的,特别是对于从C、Java等语言转向Python的人来说,很容易按照C、Java等语言的写法来写Python,对于初学者来说,如果对Python语言的理解不够透彻,就会写出很冗余的代码来。
这篇文章,主要介绍几个简单技巧,让你在写Python代码,更Pythonic。
变量交换
- Pythonic写法
- 普通写法
循环遍历区间元素
在Python2中,有range和xrange2种写法,xrange是生成器写法,更节省内存。Python3中的range等价于Python2中的xrange。
生成器,只有在使用时才会动态生成,而且只能使用1次,比如range(1000000),Python2中会在内存中生成1百万个元素的列表,而在Python3不会生成列表,而是生成器,占用很小的内存。
如何你还在使用Python2,建议用xrange代替range
- Java的写法
- 生成器扩展
索引
- Pythonic写法
- 普通写法
显然,Pythonic写法更加直观,优雅。
字符串拼接
- Pythonic写法
- 普通写法
每次+操作都会产生新字符串,造成内存浪费,而join,整个过程中只会产生一个字符串对象
文件打开与关闭
- Pythonic写法
- 普通写法
使用with,Python将自动管理文件流的打开与关闭,无需手动操作
列表操作
- Pythonic写法
- 普通写法
list也可以用pop(0)来删除***个元素,但是list在内存中是顺序存储的,删除***个元素,会导致之后的所有元素都会前移,效率很低,插入类似。
开头如果有大量的删除和插入操作,避免使用list
解构赋值
- Pythonic写法
字典也类似,在Python2中,字典的items方法将返回列表,当字典比较大时,这样会很耗内存。而iteritems方法返回的是生成器。
Python3中,没有iteritems,items等价于Python2的iteritems。
如果在使用Python2,请用iteritems代替items
推导式
- Pythonic写法
- 普通写法
相关文章
- 静态分析器 Clang Static Analyzer (2) CodeChecker
- 如何更改 Ubuntu 的登录屏幕背景
- Bash 初学者系列 6:bash 中的字符串操作
- 成功进行数据迁移的策略
- LiteOS-A内核中的procfs文件系统分析
- Vue3,用组合编写更好的代码:动态返回(3/4)
- 从实现原理来讲,Nacos 为什么这么强?
- Gnoppix Linux 22.12 发布
- 开发大数据应用程序企业的四个成功要素
- 掌握强大的 Git 变基命令
- 当大数据平台遇到K8s,智领云助力企业向数据驱动转型
- 研究研究 ES_OEMCONVERT 标志,你学会了吗?
- ISO 镜像已放出,Linux Mint 21.1 Beta 版本上线
- 事件循环机制:JavaScript被设计为单线程,那如何做到异步的呢?
- 微软 Windows 10 / Windows 11 免费工具集 PowerToys 0.65.0 发布:兼容 .NET 7
- 你需要知道的 TCP 三次握手
- Linux 系统日志—Secure,Btmp,Wtmp文件详解
- Bash 初学者系列 5:在 bash 中进行数学运算
- 已置顶横条通知,谷歌 Chrome 浏览器不再支持 Windows 7 / Windows 8.1 平台
- 2022数博会:把脉工业互联网发展之道