Python 将字典数组的前2个元素转换为元组
如何将每个数组的前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[
{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