从字典值中删除外部列表

问题描述 投票:2回答:2

我想从字典值中删除外部列表,但我只能找到the unpacking method不确定如何在字典值上使用它。

我的数据看起来像这样

DIC
{'A': array([[ 1.90769404e-01,  1.26112014e-01, -2.17013955e-02]],
'B': array([[ 2.80194253e-01,  1.19333006e-01,  3.63824964e-02]],
'C': array([[ 1.40285566e-01,  4.76801395e-02,  5.49828596e-02]]}

我想删除外部列表,使它们像这样

{'A': array([ 1.90769404e-01,  1.26112014e-01, -2.17013955e-02],
'B': array([ 2.80194253e-01,  1.19333006e-01,  3.63824964e-02],
'C': array([ 1.40285566e-01,  4.76801395e-02,  5.49828596e-02]}

有什么建议怎么做?提前致谢!

python list
2个回答
1
投票

当然使用索引:

>>> {k:v[0] for k,v in DIC.items()}
{'A': array([ 0.1907694 ,  0.12611201, -0.0217014 ]), 'B': array([ 0.28019425,  0.11933301,  0.0363825 ]), 'C': array([ 0.14028557,  0.04768014,  0.05498286])}
>>> 

0
投票

Python词典解决方案:

{i:j[0] for i,j in DICTIONARY.items() }

#  
  {'A': [0.190769404, 0.126112014, -0.0217013955],
   'B': [0.280194253, 0.119333006, 0.0363824964],
   'C': [0.140285566, 0.0476801395, 0.0549828596]}

Python Numpy Array的解决方案

arr = {'A': np.array([[ 1.90769404e-01,  1.26112014e-01, -2.17013955e-02]]),
       'B': np.array([[ 2.80194253e-01,  1.19333006e-01,  3.63824964e-02]]),
       'C': np.array([[ 1.40285566e-01,  4.76801395e-02,  5.49828596e-02]])}


print({k:v[0].ravel() for k,v in arr.items()})

output

{'A': array([ 0.1907694 ,  0.12611201, -0.0217014 ]), 'B': array([0.28019425, 0.11933301, 0.0363825 ]), 'C': array([0.14028557, 0.04768014, 0.05498286])}
© www.soinside.com 2019 - 2024. All rights reserved.