2014-10-17 56 views
0

作爲參數傳遞的字典的鍵和值我有一個c#背景,我想在方法中傳遞一個字典,並且我想要檢查某個特定的鍵是否存在。如果該密鑰存在於字典中,那麼我想執行其他幾件事情。如何訪問在方法

讓我們假設有下面的字典,如果:

tel = {'jack': 4098, 'sape': 4139} 

,我要檢查鑰匙「薩佩」是否存在?不知何故,我不知道爭論的類型。我如何轉換成字典以檢索鍵和值。

在方法我想查:

keys = tel.keys() ; 
keys.__contains__('sap') 
do something 

然而,在方法,我沒有對傳遞的參數類型的信息。

+2

你說的「轉換爲字典」是什麼意思?如果你的函數需要一個字典,那麼假設它是一個字典,並在tel:中使用'if'sap。 – 2014-10-17 16:39:23

+3

你不應該直接在這裏使用'__magic_methods__',也不要調用'.keys()'。只需在'tel'字典中直接使用'in'運算符即可。 – 2014-10-17 16:40:07

+0

正如我所提到的,我在python中很新,並且找不到這種細節。 – User1551892 2014-10-17 16:42:06

回答

0

幾點需要注意的Python:

Python是不是靜態類型如C#。函數/方法簽名不包含參數的數據類型。所以你不需要將傳入的值轉換爲字典。相反,你認爲傳入的內容是一本字典並對其進行處理。如果您希望字典以外的內容能夠通過,您可以使用exception handling來解決任何問題,或者您可以使用isinstance來檢查傳入的內容是您期望的內容。說了,蟒蛇確實存在;例如你可以通過str(1)將一個int 1轉換爲一個字符串。

另請注意,如果使用in關鍵字,它將適用於任何迭代,而不僅僅是字典。

例子:

>>> 'jack' in 'lumberjack' 
True 
>>> tel = {'jack': 4098, 'sape': 4139} 
>>> 'jack' in tel 
True 
>>> 

如果你真要查,如果事情是一本字典,你可以這樣做:

>>> isinstance(tel,dict) 
True