我有一个列表列表:
[[0, 1, 2,], [130, 131], [142, 143]]
我想将此列表l
转换为以下形式的字典:
{'0': 0, '1': 0, '2':'0, '130': 1, '131: 1, '142': 2, '143': 2}
所以关键是列表元素。相应的值是l
子列表中的条目名称。希望您能关注我的问题。
我尝试了以下代码,这些代码根本不起作用。
cluster_list = list(range(len(list(l))))
dictionary = dict(zip(cluster_list, l))
我必须添加:每个子列表说明哪些节点是同一群集的成员。所以每个节点只出现一次。
我希望我们可以一起解决这个问题。谢谢!
答案 0 :(得分:7)
使用enumerate
例如:
data = [[0, 1, 2], [130, 131], [142, 143]]
print({i: k for k, v in enumerate(data) for i in v})
#or print({str(i): k for k, v in enumerate(data) for i in v}) #For string key.
输出:
{0: 0, 1: 0, 2: 0, 130: 1, 131: 1, 142: 2, 143: 2}
答案 1 :(得分:0)
尝试一下:
l = [[0, 1, 2,], [130, 131], [142, 143]]
d = {}
for n in range(len(l)):
for item in l[n]:
d[item] = n
print(d)