Python 将字典数组的前2个元素转换为元组

Python 将字典数组的前2个元素转换为元组,python,arrays,dictionary,tuples,Python,Arrays,Dictionary,Tuples,如何将每个数组的前2个元素转换为元组索引 当前 {0: [1, 1, 0], 1: [1, 2, 357], 2: [1, 3, 167], 3: [1, 4, 155]} 预期结果 {(1, 1): 0, (1, 2): 357, (1, 3): 167, (1, 4): 155} 您可以通过以下方式进行操作: d = {0: [1, 1, 0],1: [1, 2, 357],2: [1, 3, 167],3: [1, 4, 155]} res = {(v[0],v[

如何将每个数组的前2个元素转换为元组索引

当前

 {0: [1, 1, 0],
 1: [1, 2, 357],
 2: [1, 3, 167],
 3: [1, 4, 155]}
预期结果

 {(1, 1): 0,
  (1, 2): 357,
  (1, 3): 167,
  (1, 4): 155}
您可以通过以下方式进行操作:

d = {0: [1, 1, 0],1: [1, 2, 357],2: [1, 3, 167],3: [1, 4, 155]}
res = {(v[0],v[1]):v[2] for v in d.values()}
其中
res
为:

{(1, 1): 0, (1, 2): 357, (1, 3): 167, (1, 4): 155}

如果有重复的元组,此解决方案将有问题。您应该以某种方式解决它。

循环字典的值,并使用元组解包来提取三个元素。将元组中的前两个元素打包为键。将最后一个元素指定为新元组的值

dictionary = {
    0:[1,1,0],
    1:[1,2,357],
    2:[1,3,167],
    3:[1,4,155],
}
result = {(j,k):i for j,k,i in dictionary.values()}


你试过什么吗?你的代码失败了吗?如果它们产生相同的元组会发生什么?
result = {}
for j,k,i in dictionary.values():
    result[(j,k)] = i