我有三个大型列表,用于在Python中填充字典的键和值。这是第一部分的一个小例子:
i = [0, 1, 2, 3, 4]
j = [2, 0, 0, 0, 0]
Cost = [13, 12, 13, 15, 13]
我的目标是将i和j组合成一个元组键,并将其作为一个值,如下所示:
Data = {(i[0],j[0]): cost[0], (i[1],j[1]): cost[1], }
我搜索过,但我找不到任何好的解决方案。那么有人知道如何填充字典和元组通过循环或类似的东西?目标是实现这一目标:
Data = {(0, 2): 13, (1, 0): 12, (2, 0): 13, (3, 0): 15, (4, 0): 13}
TNX!
答案 0 :(得分:2)
在zip
ping' all all:
>>> {(k1, k2): val for k1, k2, val in zip(i, j, Cost)}
{(0, 2): 13, (1, 0): 12, (2, 0): 13, (3, 0): 15, (4, 0): 13}
答案 1 :(得分:1)
你可以使用Moses Koledoye提到的相同的zip内置功能。 像这样:
dict(zip(zip(i,j),Cost))
结果:
{(3, 0): 15, (2, 0): 13, (1, 0): 12, (0, 2): 13, (4, 0): 13}
这比zip函数列表理解的dict要快。