[英]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.