python - 创建和排序嵌套字典
问题描述
我有两个数组:-
A=[a,d,b,c]
B=[e,g,f,h,k,l,m]
我想通过组合两个数组来创建一个嵌套字典。我想在每个密钥对的嵌套字典中插入 hello 。预期结果 :
d=dict()
d={'a':{'e':'Hello','g':'Hello','f':'Hello','f':'Hello','h':'Hello','k':'Hello','l':'Hello','m':'Hello'},
'b':{'e':'Hello','g':'Hello','f':'Hello','f':'Hello','h':'Hello','k':'Hello','l':'Hello','m':'Hello'},
c:{'e':'Hello','g':'Hello','f':'Hello','f':'Hello','h':'Hello','k':'Hello','l':'Hello','m':'Hello'} --------- }
我的代码:
for f in range(0,len(A)):
d[f] = {}
for i in range (0,len(B):
if A[f] not in d:
d[f]={}
d[A[f]].update([B[i]]:'Hello')
print d
但我得到的是扭曲的字典。正如我在上面解释的那样,我期待结果,但我得到的结果是一本字典,顺序不正确,排序混乱。
请帮忙。
解决方案
OrderDict 存在于 python 中,但它确实记住了键插入的顺序:
from collections import OrderedDict
d = {}
d['a'] = 1
d['b'] = 2
d['c'] = 3
for k,v in d.items():
print(k,v)
#('a',1)
#('c',3)
#('b',2)
ord = {}
ord = {}
ord['a'] = 1
ord['b'] = 2
ord['c'] = 3
for k,v in ord.items():
print(k,v)
#('a',1)
#('b',2)
#('c',3)
官方文档在这里
推荐阅读
- ruby-on-rails - 黄瓜步骤未在页面上生成预期文本
- apache-kafka - 加快删除具有相同键的旧记录(日志压缩主题)
- c# - 将接口用作私有成员的类型是否有意义?
- c++ - 切换变量但输入是连续的算法
- discord.py - discord.py:如何使消息无法从 channel.purge 中删除
- python - ColumnTransformer 的问题。DataFrame 列排序更改
- javascript - Angular2无法获取任何响应数据
- sql - SQL Server 中两个条件之间的异或
- java - 通过java从URL获取Json数组
- php - 移动php成功消息