簡體   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