Effective Python:(10)

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/67476.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效学习方法分享

高效学习方法分享 引言 在信息高速发展的今天,学习已经成为每个人不可或缺的一部分。你是否曾感到学习的疲惫,信息的爆炸让你无从下手?今天,我们将探讨几种高效的学习方法,帮助你从中找到适合自己的学习之道。关于学…

数据库备份、主从、集群等配置

数据库备份、主从、集群等配置 1 MySQL1.1 docker安装MySQL1.2 主从复制1.2.1 主节点配置1.2.2 从节点配置1.2.3 创建用于主从同步的用户1.2.4 开启主从同步1.2.4 主从同步验证 1.3 主从切换1.3.1 主节点设置只读(在192.168.1.151上操作)1.3.2 检查主从数…

代码随想录_栈与队列

栈与队列 232.用栈实现队列 232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 思路: 定义两个栈: 入队栈, 出队栈, 控制出入…

AJAX综合案例——图书管理

黑马程序员视频地址: AJAX-Day02-10.案例_图书管理AJAX-Day02-10.案例_图书管理_总结_V1.0是黑马程序员前端AJAX入门到实战全套教程,包含学前端框架必会的(ajaxnode.jswebpackgit),一套全覆盖的第25集视频&#xff0c…

【编译原理实验二】——自动机实验:NFA转DFA并最小化

本篇适用于ZZU的编译原理课程实验二——自动机实验:NFA转DFA并最小化,包含了实验代码和实验报告的内容,读者可根据需要参考完成自己的程序设计。 如果是ZZU的学弟学妹看到这篇,那么恭喜你,你来对地方啦! 如…

【redis进阶】分布式锁

目录 一、什么是分布式锁 二、分布式锁的基础实现 三、引入过期时间 四、引入校验 id 五、引入lua 六、引入 watch dog (看门狗) 七、引入 Redlock 算法 八、其他功能 redis学习🥳 一、什么是分布式锁 在一个分布式的系统中,也会涉及到多个节点访问同一…

wordpress每隔24小时 随机推荐一个指定分类下的置顶内容。

在WordPress中实现每隔24小时随机推荐一个指定分类下的置顶内容,可以通过以下步骤实现: 1. 创建自定义函数 在主题的functions.php文件中添加以下代码,用于创建一个定时任务,每隔24小时随机选择一个置顶文章并存储到选项中&…

Blazor-@bind

数据绑定 带有 value属性的标记都可以使用bind 绑定&#xff0c;<div>、<span>等非输入标记&#xff0c;无法使用bind 指令的&#xff0c;默认绑定了 onchange 事件&#xff0c;onchange 事件是指在输入框中输入内容之后&#xff0c;当失去焦点时执行。 page &qu…

RK3568 opencv播放视频

文章目录 一、opencv相关视频播放类1. cv::VideoCapture 类主要构造方法&#xff1a;主要方法&#xff1a; 2. 视频播放基本流程代码示例&#xff1a; 3. 获取和设置视频属性4. 结合 FFmpeg 使用5. OpenCV 视频播放的局限性6. 结合 Qt 实现更高级的视频播放总结 二、QT中的代码…

pytorch逻辑回归实现垃圾邮件检测

完整代码&#xff1a; import torch import torch.nn as nn import torch.optim as optim from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import numpy as…

【 CVE-2025-21298】 通过ghidriff查看完整补丁差异

ole32_dec24.dll-ole32.dll 差异 目录 视觉图表差异元数据 Ghidra 差异引擎 命令行二进制元数据差异程序选项

洛谷P3383 【模板】线性筛素数

题目链接&#xff1a;P3383 【模板】线性筛素数 - 洛谷 | 计算机科学教育新生态 题目难度&#xff1a;普及一 题目分析&#xff1a;本题是模板题&#xff0c;用到了线性筛法&#xff0c;其中原理是保证范围内的每个合数都被删掉&#xff08;在 bool 数组里面标记为非素数…

STM32标准库移植RT-Thread nano

STM32标准库移植RT-Thread Nano 哔哩哔哩教程链接&#xff1a;STM32F1标准库移植RT_Thread Nano 移植前的准备 stm32标准库的裸机代码&#xff08;最好带有点灯和串口&#xff09;RT-Thread Nano Pack自己的开发板 移植前的说明 本人是在读学生&#xff0c;正在学习阶段&a…

JVM--类加载器

概念 类加载器&#xff1a;只参与加载过程中的字节码获取并加载到内存中的部分&#xff1b;java虚拟机提供给应用程序去实现获取类和接口字节码数据的一种技术&#xff0c;也就是说java虚拟机是允许程序员写代码去获取字节码信息 类加载是加载的第一步&#xff0c;主要有以下三…

ECMAScript 6语法

1.ES6简介 ECMAScript 6&#xff08;简称ES6&#xff09;是于2015年6月正式发布的JavaScript语言的标准&#xff0c;正式名为ECMAScript 2015&#xff08;ES2015&#xff09;。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言 。 …

联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署

直接上手搓了&#xff1a; conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…

Tez 0.10.1安装

个人博客地址&#xff1a;Tez 0.10.1安装 | 一张假钞的真实世界 具体安装步骤参照官网安装手册即可。此处只对官网手册进行补充。 从官网下载apache-tez-0.10.1-bin.tar.gz进行安装未成功&#xff0c;出现下面的异常。最终按照官网源代码编译的方式安装测试成功。 环境 Had…

FastAPI + GraphQL + SQLAlchemy 实现博客系统

本文将详细介绍如何使用 FastAPI、GraphQL&#xff08;Strawberry&#xff09;和 SQLAlchemy 实现一个带有认证功能的博客系统。 技术栈 FastAPI&#xff1a;高性能的 Python Web 框架Strawberry&#xff1a;Python GraphQL 库SQLAlchemy&#xff1a;Python ORM 框架JWT&…

微服务入门(go)

微服务入门&#xff08;go&#xff09; 和单体服务对比&#xff1a;里面的服务仅仅用于某个特定的业务 一、领域驱动设计&#xff08;DDD&#xff09; 基本概念 领域和子域 领域&#xff1a;有范围的界限&#xff08;边界&#xff09; 子域&#xff1a;划分的小范围 核心域…

深入解析 Linux 内核内存管理核心:mm/memory.c

在 Linux 内核的众多组件中,内存管理模块是系统性能和稳定性的关键。mm/memory.c 文件作为内存管理的核心实现,承载着页面故障处理、页面表管理、内存区域映射与取消映射等重要功能。本文将深入探讨 mm/memory.c 的设计思想、关键机制以及其在内核中的作用,帮助读者更好地理…