2014-01-25 59 views
-1

下面是一本詞典。如何搜索主詞典裏面的內容

h={'PC2': ['02:02:02:02:02:02', '192.168.0.2', '200', {}], 
    'PC3': ['2', '3', '4', {}],  
    'PC1': ['01:01:01:01:01:01', '192.168.0.1', '200', {'192.168.0.2': ('02:02:02:02:02:02', 1390612124.431)}]} 

現在我只想在主字典(h)中搜索「192.168.0.2」,而不是在嵌套字典中搜索。現在如果找到了那個東西('192.168.0.2'),我想指出相應鍵的位置,即'PC2'。

'192.168.0.2'將由用戶(輸入)輸入,所以如果他輸入'192.168.0.1',我應該指向'PC1',那麼我將訪問PC1的第三個元素(嵌套字典),並且節省點東西。

所以總結:

用戶只需輸入「IP」 e.g.192.168.0.1 然後,我需要找到與IP相關的例如關鍵PC1 ,然後我將保存在所述第三位置的東西(元組與該IP相關聯)(嵌套字典) 例如,如果主機( 'PC1')

例如H [ 'PC1'] [3] ['192.168 '0'''='y','z'

+1

你有什麼問題?主詞典的每個值都是一個列表。你爲什麼不在這個列表中搜索與你的輸入IP地址相匹配的東西?字典看起來不像IP地址,因此您不會在嵌套字典中搜索。 – GreenAsJade

回答

1
In [178]: h={'PC2': ['02:02:02:02:02:02', '192.168.0.2', '200', {}], 
    ...: 'PC3': ['2', '3', '4', {}],  
    ...: 'PC1': ['01:01:01:01:01:01', '192.168.0.1', '200', {'192.168.0.2': ('02:02:02:02:02:02', 1390612124.431)}]} 

In [179]: needle='192.168.0.2' 

In [180]: keys=[k for k in h if needle in h[k]] 

In [181]: keys 
Out[181]: ['PC2'] 
+0

我只想要字符串'PC2',以便我可以搜索它..而不是以您打印的列表格式 – user3209413

+1

@ user3209413如果您只想第一次出現,只需通過'keys [0]'; – zhangxaochen