繁体   English   中英

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

[英]How can I convert an array inside a python dictionary to a tuple?

我有这本字典:

{
    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),
    ...
}

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

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()})

OUTPUT: {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)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM