从Python中的列表填充字典中的键元组和值

从Python中的列表填充字典中的键元组和值,python,loops,dictionary,tuples,Python,Loops,Dictionary,Tuples,我有三个大的列表,希望用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], } 我已经找过了,但没有找到好的解决办法。那么,有人知道如何通过循环或类似的方式填充字典和元组吗?目标

我有三个大的列表,希望用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

在ping他们所有人之后使用字典理解:

>>> {(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}

您可以使用Moses Koledoye提到的相同的zip内置函数。 大概是这样的:

dict(zip(zip(i,j),成本))

结果:

{(3,0):15,(2,0):13,(1,0):12,(0,2):13,(4,0):13}


这将比dict对zip函数的列表理解更快。

我认为循环可以很好地工作。这对你不起作用吗?不,循环是不可能的。如果你对任何答案感到满意,你可以通过单击答案中的勾号图标来接受该答案。