如何解决如何将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 举报,一经查实,本站将立刻删除。