从Python

时间:2017-04-09 14:10:10

标签: 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], }

我搜索过,但我找不到任何好的解决方案。那么有人知道如何填充字典和元组通过循环或类似的东西?目标是实现这一目标:

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

TNX!

2 个答案:

答案 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要快。