Python中向字典添加嵌套字典时集合元素顺序不符求助
问题分析与解决办法
你代码里的{255,1,2}不是嵌套字典,而是集合(set)。集合的核心特性就是无序性,不管你定义时的元素顺序是什么,输出时都会自动调整;而且两个集合的元素完全相同,所以看起来结果一模一样。
如果想要保留元素的定义顺序,或者实现真正的嵌套字典,有两种解决方式:
1. 用列表/元组保留顺序
如果只是需要按固定顺序存储数值,把集合换成列表(方括号[])或元组(圆括号())即可:
Colors = {} a = {"1:1": [255, 1, 2]} b = {"2:1": [1, 255, 2]} Colors.update(a) Colors.update(b) print(Colors)
运行输出:
{'1:1': [255, 1, 2], '2:1': [1, 255, 2]}
2. 定义真正的嵌套字典
如果你的需求是嵌套字典(键值对结构),需要把内部的集合改成键值对形式,比如存储RGB通道值:
Colors = {} a = {"1:1": {"r":255, "g":1, "b":2}} b = {"2:1": {"r":1, "g":255, "b":2}} Colors.update(a) Colors.update(b) print(Colors)
运行输出:
{'1:1': {'r': 255, 'g': 1, 'b': 2}, '2:1': {'r': 1, 'g': 255, 'b': 2}}
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

