[英]How to change values of a dict with Python array?
我有两个变量,一个字典和一个数组,我希望为每个数组值更改字典值。
字典是这样的:
{'10.0.1.1': array([0.44739793, 0.45896071]),
'10.0.1.11': array([0.0651452 , 0.79400788]),
'10.0.1.17': array([-0.30955505, -0.68114728]),
'10.0.1.18': array([-0.86424049, 0.36407693]),
'10.0.1.2': array([ 0.53028569, -0.34903309]),
'10.0.1.22': array([ 0.82654681, -0.12412811]),
'10.0.1.23': array([-0.34425123, 0.1718602 ]),
'10.0.1.25': array([-0.96558349, -0.56542351]),
'10.0.1.26': array([-0.65562853, 0.03249861]),
'10.0.1.5': array([ 0.29772161, -0.32568994]),
'10.0.1.6': array([-0.09182783, 0.60688289]),
'10.0.1.9': array([ 1. , -0.25280971]),
'10.0.11.100': array([0.25305214, 0.15893858]),
'10.0.12.100': array([0.73537509, 0.38210647]),
'10.0.13.100': array([-0.79243841, -0.32855154]),
'10.0.14.100': array([-0.13199944, -0.34254908])}
和数组:
array([[-0. , 0. , 0. , -0.92999877, 2. ],
[ 0.72697727, -1.00416248, -0.06716753, -0.16522289, -0. ],
[ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ],
[ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ],
[-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ],
[-0.14544414, 0.04370471, -0.74557808, 0.70755899, 0. ],
[-0. , -0. , 0. , -0.4311162 , -0. ],
[ 0.14544414, -0.04370471, 0.74557808, 0.70755899, 0. ],
[ 0. , -0. , 0. , -0.4311162 , -0. ],
[-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ],
[-0. , 0. , 0. , -0.92999877, -2. ],
[ 1.18660948, 0.99293878, -0.57256311, -0.16522289, -0. ],
[-0. , -0. , 0. , -0.4311162 , -0. ],
[-1.18660948, -0.99293878, 0.57256311, -0.16522289, -0. ],
[-0.72697727, 1.00416248, 0.06716753, -0.16522289, -0. ],
[-0. , 0. , -0. , -0.4311162 , 0. ]])
我希望它变成这样:
{'10.0.1.1': array([-0. , 0. , 0. , -0.92999877, 2. ]),
'10.0.1.11': array([ 0.72697727, -1.00416248, -0.06716753, -0.16522289, -0. ]),
'10.0.1.17': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ]),
'10.0.1.18': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ]),
'10.0.1.2': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ]),
'10.0.1.22': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, 0. ]),
'10.0.1.23': array([-0. , -0. , 0. , -0.4311162 , -0. ]),
'10.0.1.25': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, 0. ]),
'10.0.1.26': array([ 0. , -0. , 0. , -0.4311162 , -0. ]),
'10.0.1.5': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ]),
'10.0.1.6': array([-0. , 0. , 0. , -0.92999877, -2. ]),
'10.0.1.9': array([ 1.18660948, 0.99293878, -0.57256311, -0.16522289, -0. ]),
'10.0.11.100': array([-0. , -0. , 0. , -0.4311162 , -0. ]),
'10.0.12.100': array([-1.18660948, -0.99293878, 0.57256311, -0.16522289, -0. ]),
'10.0.13.100': array([-0.72697727, 1.00416248, 0.06716753, -0.16522289, -0. ]),
'10.0.14.100': array([-0. , 0. , -0. , -0.4311162 , 0. ])}
怎么可能做到这一点?
像下面这样的字典理解怎么样:
res = {k:x[i,:] for i, k in enumerate(d.keys())}
其中d
是原始字典, x
是您发布的numpy
数组。
res
是:
{'10.0.1.1': array([-0. , 0. , 0. , -0.92999877, 2. ]),
'10.0.1.11': array([ 0.72697727, -1.00416248, -0.06716753, -0.16522289, -0. ]),
'10.0.1.17': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ]),
'10.0.1.18': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, -0. ]),
'10.0.1.2': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ]),
'10.0.1.22': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, 0. ]),
'10.0.1.23': array([-0. , -0. , 0. , -0.4311162, -0. ]),
'10.0.1.25': array([ 0.14544414, -0.04370471, 0.74557808, 0.70755899, 0. ]),
'10.0.1.26': array([ 0. , -0. , 0. , -0.4311162, -0. ]),
'10.0.1.5': array([-0.14544414, 0.04370471, -0.74557808, 0.70755899, -0. ]),
'10.0.1.6': array([-0. , 0. , 0. , -0.92999877, -2. ]),
'10.0.1.9': array([ 1.18660948, 0.99293878, -0.57256311, -0.16522289, -0. ]),
'10.0.11.100': array([-0. , -0. , 0. , -0.4311162, -0. ]),
'10.0.12.100': array([-1.18660948, -0.99293878, 0.57256311, -0.16522289, -0. ]),
'10.0.13.100': array([-0.72697727, 1.00416248, 0.06716753, -0.16522289, -0. ]),
'10.0.14.100': array([-0. , 0. , -0. , -0.4311162, 0. ]),}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.