You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python一行代码中圆括号与方括号组合赋值技巧的名称及资料查询

关于该Python编程技巧的说明

这种写法没有被广泛认可的官方名称,一般可以称之为元组索引式条件对象选择赋值,本质是利用元组的索引特性,根据条件选择要操作的对象后完成赋值。

核心逻辑拆解

你给出的代码里,({}, d)是一个包含两个字典的元组:

  • 当i%2 == 0时,索引为0,选择临时空字典{},赋值后这个字典就被直接丢弃,不会产生任何实际作用
  • 当i%2 == 1时,索引为1,选择预定义的字典d,将键值对i: i**2存入其中

为什么不推荐这种写法

  • 可读性极差:多数开发者无法一眼理解代码意图,会大幅提升后续维护成本
  • 存在无意义操作:每次选择空字典时的赋值完全无效,属于纯粹的炫技类写法

相关知识获取方向

  • 可以学习Python的表达式求值优先级:这段代码能正常执行的核心是元组索引操作的优先级高于赋值,因此会先确定目标对象再执行赋值
  • 这类写法属于Python的“奇技淫巧”,常见于**代码高尔夫(Code Golf)**场景(用最少代码实现功能),或者社区的趣味代码讨论中,但完全不适合工程化代码
  • 更规范的替代写法是使用Python条件表达式,可读性大幅提升:
    d = {}
    for i in range(10):
        target_dict = d if i % 2 else {}
        target_dict[i] = i ** 2
    

内容的提问来源于stack exchange,提问作者RoKivals

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:13:33