python - 使用索引列表从字典中获取值

标签 python python-3.x data-manipulation

给定一个列表:

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/

相关文章:

python:删除 Pandas 数据框中包含字符串的所有行

python - python 解决方案?以偶尔的列表作为值遍历字典

python - 预分配一个无列表

python - 在 tkinter python 中执行 ("after"脚本时如何处理无效的命令名称错误)

r - data.table:每组过去 24 小时内的观察子集

python - 尽管有 --pylab inline 选项,但 Matplotlib 输出未在 IPython Notebook 中内联显示

python - 使用 python 自动化 Hive

python-3.x - 当我执行 "rasa init"错误 : "failed to install native tensorflow runtime"

python - TypeError 'DataFrame'对象不可调用

json - 使用 jq 从多维 JSON 数组中选择第 n 个元素