2016-06-10 458 views
0

我有一个从netCDF文件中的变量创建的字典。我也按时间顺序排列了所有这些变量。有些键的重复值。我想找到的所有指标的特定值的一个关键和检索另一个关键相应的指标:查找字典中的值的所有索引python

例如:在test_dict

test_dict = {} 
test_dict['time'] = [1,2,3,4] 
test_dict['number'] = [12,14,12,13] 
test_dict['number2'] = [20,21,22,23] 

我想找到的所有出现的索引12键入'数字',并在'数字2'中获得相应的值。所以结果应该是:

idx = [0,2] 
nums_interest = [test_dict['number2'][i] for i in idx] 
>>>> [20,22] 

我试图用找到的唯一值的数量在“数字”:

num_unique = np.unique(test_dict['number']) 
>>>> [12,13,14] 

然后我想找到这些独特的出现的所有指标。

idx2 = [test_dict['number'].index(num_unique[0]) 
>>> 0 

我有两个主要问题:1.我可以找到第一个索引,但不能重复索引。 2.我想循环遍历唯一数字的列表,并获取每个唯一值的索引,而不仅仅是num_unique [0] 问题:什么是在字典中为特定值查找索引并提取在不同的关键字相同的指标?

+0

难道你不能只用'[j为我,zip中的j(test_dict ['number'],test_dict ['number2'])if i == 12]'?你不必以这种方式找到'12'的索引 – SvbZ3r0

+0

@GughanRavikumar工作! – manateejoe

+0

很高兴为您提供帮助。我已经将其添加为答案。如果您发现它很有用,请将其标记为已接受,以便阅读此问题的其他人可以从中受益 – SvbZ3r0

回答

1

从一个键基于在字典的另一个重要的指标

test_dict = {} 
test_dict['number'] = [12,14,12,13] 
test_dict['number2'] = [20,21,22,23] 
print([j for i,j in zip(test_dict['number'],test_dict['number2']) if i==12]) 

回报[20,22]

为了得到一个值出现的所有的索引列表中的返回值

indices = [i for i,j in enumerate(dict['number']) if j==12] 

给出indices等于[0,2]