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

Python中字典解包:是否存在类似列表的简洁拆分方法?

Python字典的快捷拆分方法

针对你提出的字典拆分需求,有两种简洁实现方案,可根据是否需要保留原字典来选择:

方案1:允许修改原字典的写法

如果不需要保留原字典的完整内容,直接用pop()方法即可实现一行拆分:

i_ate = {'apple': 2, 'beetroot': 0, 'cinnamon': 3, 'donut': 8}

# Shortcut
apples, rest = i_ate.pop('apple'), i_ate

# 结果验证
apples  # 输出: 2
rest    # 输出: {'beetroot': 0, 'cinnamon': 3, 'donut': 8}

注意:此方法会直接从原字典i_ate中移除'apple'键,原字典内容会被修改。

方案2:不修改原字典的写法

若需要保留原字典,可结合字典解包与海象运算符(Python 3.8及以上版本支持)实现一行拆分:

i_ate = {'apple': 2, 'beetroot': 0, 'cinnamon': 3, 'donut': 8}

# Shortcut
apples, rest = (rest_copy := {**i_ate}).pop('apple'), rest_copy

# 结果验证
apples  # 输出: 2
rest    # 输出: {'beetroot': 0, 'cinnamon': 3, 'donut': 8}
i_ate   # 输出: {'apple': 2, 'beetroot': 0, 'cinnamon': 3, 'donut': 8}(原字典未被修改)

这里先通过{**i_ate}创建原字典的副本,再用海象运算符将副本绑定到rest_copy,最后从副本中取出目标键值并完成拆分。

如果你的Python版本低于3.8,也可以用两行代码实现无修改拆分,依然比原繁琐写法简洁:

rest = {**i_ate}
apples = rest.pop('apple')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 10:20:22