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

【Python 语法糖小火锅 · 第 2 涮】

一、糖味一句话

星号 * 和 ** 就是 Python 的「拆包神器」:
把序列/字典“哗”地倒出来,再“嗖”地装进变量或函数,一次到位,不洒不漏。


二、1 行示例 3 连发

# ① 序列拆包:头尾随便抓
head, *body, tail = range(5)          # head=0, body=[1,2,3], tail=4# ② 字典合并:两份配置一张表
merged = {**defaults, **user_cfg}     # 后者覆盖前者# ③ 星号形参:任意长度位置 & 关键字
def log(fmt, *args, **kw):print(fmt.format(*args), kw)       # kw 记录额外字段

三、真实场景:函数调用一键展开

需求:把 query_params 字典直接塞进 requests.get(),同时再补一个默认 timeout=3

import requests
query_params = {'q': 'python', 'page': 2}
resp = requests.get('https://api.github.com/search/repositories',params={**query_params, 'per_page': 10},timeout=3)

解释:

  • {**query_params, 'per_page': 10} 先把原字典“倒空”,再加新键。
  • 无需手动 copy(),也不会修改原字典。

四、防踩坑小贴士

  1. 星号只能拆一次:
    a, *b, *c = seq ❌ 会 SyntaxError。
  2. 字典拆包时键冲突,后者覆盖前者;若需保留两份,用 collections.ChainMap
  3. 函数定义里 *args 必在 **kwargs 之前,顺序颠倒直接 SyntaxError。

记忆口令 :“一 * 拆序列,两 ** 拆字典;函数收摊全兜底,顺序别搞反。”

http://www.xdnf.cn/news/1272673.html

相关文章:

  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 【数据分享】各省农业土地流转率(2010-2023)
  • 【Python 语法糖小火锅 · 第 4 涮】
  • 【Python 语法糖小火锅 · 第 3 涮】
  • 【unitrix数间混合计算】2.9 小数部分特征(t_non_zero_bin_frac.rs)
  • 【Canvas与旗帜】圆角蓝底大黄白星十一红白带旗
  • UE破碎Chaos分配模型内部面材质
  • CentOS7编译安装GCC
  • 【Python 高频 API 速学 ④】
  • Spring学习笔记:Spring AOP入门以及基于Spring AOP配置的深入学习与使用
  • 嵌入式软件工程师笔试题(二)
  • 腾讯COS云存储入门
  • 原创邮件合并Python工具使用说明(附源码)
  • 安装NodeJS和TypeScript简要指南
  • 东方心绣脸启幕26周年盛典:以匠心锚定百年基业
  • 百度网盘自动启动如何关闭,关闭智能看图
  • AI推理的“灵魂五问”:直面2025算力鸿沟与中国的破局之路
  • 模拟人脑处理文本——从分句到分词,从段落到时间线叙事
  • 【Datawhale AI夏令营】让AI读懂财报PDF(多模态RAG)(Task 2)
  • 《汇编语言:基于X86处理器》第12章 复习题和练习
  • 《励曼旋耕》Liman Rotary Tillage
  • 202506 电子学会青少年等级考试机器人五级器人理论真题
  • JVM相关(AI回答)
  • 云渲染的未来已来:渲酷云如何重新定义数字内容生产效率
  • [CUDA] CUTLASS | C++ GEMM内核--高度模板化的类
  • 基于STM32H5的循环GPDMA链表使用
  • C语言指针完全指南:从入门到精通
  • C++虚函数表实现机制以及用C语言对其进行的模拟实现(加入了自己的思考和笔记)
  • 轻松Linux-5.进程控制
  • Linux文件系统基石:透彻理解inode及其核心作用