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

如何合并两个字典的dict_keys实例并保留原有顺序?

合并两个字典的键并保留指定顺序的替代方法

已知你有两个键不重复的字典ns和no,需要合并它们的键并保留「先ns的键,再no的键」的顺序,除了list(ns.keys()) + list(no.keys()),还有以下几种方法:

1. 使用itertools.chain(惰性迭代,内存友好)

itertools.chain可以将多个可迭代对象串联成一个迭代器,不需要提前生成完整列表,适合处理大数据量的场景:

import itertools

combined_keys = itertools.chain(ns.keys(), no.keys())
# 直接用于enumerate遍历
for idx, key in enumerate(combined_keys):
    # 你的计算逻辑
    pass

这个方法返回的是迭代器,只能遍历一次,但内存占用极低。

2. 生成器表达式(轻量惰性迭代)

用生成器表达式也能实现惰性串联,无需导入额外模块:

combined_keys = (key for d in (ns, no) for key in d.keys())
# 同样可直接配合enumerate使用
for idx, key in enumerate(combined_keys):
    # 你的计算逻辑
    pass

3. 字典合并(Python 3.7+)

Python 3.7及以上版本的字典会保留插入顺序,利用字典合并语法可以直接得到按顺序排列的键集合:

# 合并字典后取键,顺序为ns的键在前,no的键在后
combined_keys = {**ns, **no}.keys()

这个方法会创建一个新的合并字典,如果两个字典体积较大,会占用额外内存,但好处是dict_keys对象支持多次遍历。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:27:08