2016-06-10 86 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]

相關問題