当前位置: 首页 > article >正文

Effective Python:(10)

Effective Python提供90条新颖的Python3编程技巧,可以让我们写程序更加灵活,代码更加整洁而易于维护,这对于商业化系统代码的重要性不言而喻。

前面两条主要介绍切片的实用好玩的用法,这一条里反而建议不用切片,这是什么场景呢?这个场景其实也很常见,就是从一个元组中取出位于起始或结束位置的其中某几项,这样的场景其实很常见,我们最容易想到的方法就是切片,通过切片把需要的部分切出来,然后通过下标进行索引访问数组元素。

但是这样写起来有些繁琐,程序不是很简洁清晰,所以作者推荐了用带星号的unpacking方法,也就是带通配符的拆分,直接一步到位搞定。unpacking我们介绍的之前的条目中有讲解,可以把一个元组通过unpacking操作直接拆解成多个变量,直接使用,免去数组下标的索引的麻烦,但这个unpacking有个限制,就是必须要求拆分的变量数目和顺序必须和元组元素数量相同。

用带星号的unpacking,可以把需要取出的元素用普通变量列出,其余用一个带星号变量列出,用来表示其余所有元素,而不用关心有多少个。这样代码就整洁清晰多了,对于维护修改又不必关心数组长度或者其他元素是否被改动过,从而避免了不必要的逻辑错误的出现。

另外需要再说明下带星号的拆分要注意的两点:一个是拆分出来的必须要有普通变量,不能只有一个带星变量,这样会报错,另外第二个就是不能同时包括两个带星变量,这样会导致系统搞不清楚要定位到哪里。


http://www.kler.cn/a/525608.html

相关文章:

  • 【C++ 真题】P1706 全排列问题
  • 【C++题解】1393. 与7无关的数?
  • 5分钟带你获取deepseek api并搭建简易问答应用
  • HDFS安全模式
  • arkui-x 前端布局编码模板
  • SET alter system reload
  • 电路研究9.2.5——合宙Air780EP中GPS 相关命令使用方法研究
  • 数字图像处理:实验六
  • 【RocketMQ 存储】- 一文总结 RocketMQ 的存储结构-基础
  • 基于SpringBoot的租房管理系统(含论文)
  • ICANN 关闭 WHOIS Port 43
  • SSM开发(八) MyBatis解决方法重载
  • JavaScript 注释
  • 索引01之初始索引
  • DeepSeek-R1环境搭建推理测试
  • llama3学习
  • 数据完整性-03
  • 为AI聊天工具添加一个知识系统 之79 详细设计之20 正则表达式 之7
  • (undone) MIT6.S081 2023 学习笔记 (Day7: LAB6 Multithreading)
  • Writing an Efficient Vulkan Renderer
  • 引入@Inject的依赖包
  • 雪花算法认知(Twitter_Snowflake)
  • Android车机DIY开发之软件篇(九) NXP AutomotiveOS编译
  • 基于MinIO的对象存储增删改查
  • 中国291个地级市的人均GDP数据(2022年)-社科数据
  • MR-GDINO: Efficient Open-World Continual Object Detection—— 高效开放世界持续目标检测