给定一个列表:
x = [0.0, 0.87, 0.0, 0.0, 0.0, 0.32, 0.46, 0.0, 0.0, 0.10, 0.0, 0.0]
我想获取所有不为0的值的索引并将它们存储在d['inds']
然后使用 d['inds']
中的索引遍历 x
的列表并获取值。
所以我会得到类似的东西:
d['inds'] = [1, 5, 6, 9]
d['vals'] = [0.87, 0.32, 0.46, 0.10]
我已经使用以下方法获得了索引:
d['inds'] = [i for i,m in enumerate(x) if m != 0]
但我不确定如何获取 d['vals']
最佳答案
d['vals'] = [x[i] for i in d['inds']]
更好的是,同时执行这两项操作:
vals = []
inds = []
for i,v in enumerate(x):
if v!=0:
vals.append(v)
inds.append(i)
d['vals']=vals
d['inds']=inds
或
import numpy as np
d['inds'],d['vals'] = np.array([(i,v) for i,v in enumerate(x) if v!=0]).T
关于python - 使用索引列表从字典中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51978540/