2014-10-17 49 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