繁体   English   中英

从嵌套列表的列表理解构建字典

[英]Build dictionary from list comprehension over nested lists

对于输入嵌套列表

[[[1, 2], [3, 4]], [[5,6]], [[7,8], [9,10], [10,10]]]

我想建立一个理解,将组装一个嵌套字典D使得:

D[0] [1] = 2, D[0][3] = 4
D[1] [5] = 6
D[2] [7] = 8, D[2][9] = 10, D[2][10] = 10

我的字典理解如下:

dict = {k1:{v[0]:v[1]} for k1, sub in enumerate(tg1) for v in sub}

但有一个问题,它不包含每一对。

我该怎么做呢?

如果你想使用字典理解,你必须嵌套它。 在您的方法中,只有一个键值对进入您的内部字典,其中您实际上希望部分成为理解本身。 像这样的事情会起作用:

d = {i:{k:v for k,v in sublist} for i, sublist in enumerate(l)}

假设l是您的列表。

如果您只有这些级别的嵌套,则可以通过理解来完成。 另一方面,如果您有更多级别,则可能需要一个(递归)函数:

D = { i:dict(L) for i,L in enumerate(yourList)}

{0: {1: 2, 3: 4}, 
 1: {5: 6}, 
 2: {7: 8, 9: 10, 10: 10}}

D[0][3] # 4
D[1][5] # 6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM