python中根据list中的元素组成一键多值的dict

python中有一个list是[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q],需要组成的dict数据结构如下:

{A:[B,C],
B:[D,E],
C:[F,G],
D:[H,I],
E:[J,K],
F:[L,M],
G:[N,O],
H:[P,Q],
I:[],
J:[],
K:[],
L:[],
M:[],
N:[],
O:[],
P:[],
Q:[],}

十分感谢!

阅读 2.4k
2 个回答
l = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q']
d = {l[i]: [l[j] for j in range(2*i+1, 2*i+3) if j < len(l)] for i in range(len(l))}

如果你学习过数据结构二叉树的相关内容,你都应该可以很容易想到解决办法。希望你能做到先自己思考再提问

合理使用列表切片与字典推导。

s = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q']
d = {s[i]: s[i*2+1: i*2+3] for i in range(len(s))}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题