微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将python字典中的数组转换为元组?

如何解决如何将python字典中的数组转换为元组?

我有这本词典:

{
    0: array([-0.16638531,-0.11749843]),1: array([-0.2318372,0.00917023]),2: array([-0.42934129,-0.0675385 ]),3: array([-0.63377579,-0.02102854]),4: array([-0.26648222,-0.42038916]),5: array([-0.17250316,-0.73490218]),6: array([-0.42774336,-0.61259704]),7: array([-0.55420825,-0.77304496]),8: array([0.13900166,0.07800885]),9: array([0.42223986,0.16563338]),10: array([ 0.39895669,-0.09198566]),12: array([0.24324618,0.44829616]),11: array([ 0.55394714,-0.17960723]),13: array([0.192127,0.5988793]),14: array([0.39554203,0.7186038 ]),15: array([0.53721604,1.        ])
}

我想将那些 numpy.ndarray 值转换为元组,并有这样的东西:

{
    0: (-0.16638531,-0.11749843),1: (-0.2318372,0.00917023),...
}

解决方法

从这个答案 here 看来,对于字典中的每个值,您可以:

tuple(arr)

因此对于整个字典,您可能可以执行以下操作:

 new_dict = {key: tuple(arr) for key,arr in old_dict.items()}

或者更容易理解:

new_dict = {}
for key,arr in old_dict.items():
    new_dict.update({key: tuple(arr)})
,
mapping = { key: (item[0],item[1]) for key,item in your_dict.items() }
,

您可以使用字典理解。

Python 字典有一个 .items() 方法,它为每个键值对返回一个 (key,value) 元组。

推导式使用原始键和 array 强制转换为 tuple 重新创建新映射。

from numpy import array

data = {
    0: array([-0.16638531,-0.11749843]),1: array([-0.2318372,0.00917023]),2: array([-0.42934129,-0.0675385 ]),3: array([-0.63377579,-0.02102854]),4: array([-0.26648222,-0.42038916]),5: array([-0.17250316,-0.73490218]),6: array([-0.42774336,-0.61259704]),7: array([-0.55420825,-0.77304496]),8: array([0.13900166,0.07800885]),9: array([0.42223986,0.16563338]),10: array([ 0.39895669,-0.09198566]),12: array([0.24324618,0.44829616]),11: array([ 0.55394714,-0.17960723]),13: array([0.192127,0.5988793]),14: array([0.39554203,0.7186038 ]),15: array([0.53721604,1.        ])
}

print({key: tuple(value) for key,value in data.items()})

输出: {0: (-0.16638531,-0.11749843),1: (-0.2318372,0.00917023),2: (-0.42934129,-0.0675385),3: (-0.63377579,-0.02102854),4: (-0.26648222,-0.42038916),5: (-0.17250316,-0.73490218),6: (-0.42774336,-0.61259704),7: (-0.55420825,-0.77304496),8: (0.13900166,0.07800885),9: (0.42223986,0.16563338),10: (0.39895669,-0.09198566),12: (0.24324618,0.44829616),11: (0.55394714,-0.17960723),13: (0.192127,0.5988793),14: (0.39554203,0.7186038),15: (0.53721604,1.0)}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。