我有一个c#背景,我试图在方法中传递字典,有些我想检查是否存在特定的密钥。如果该密钥存在于字典中,那么我想执行其他一些操作。
假设有以下字典:
tel = {'jack': 4098, 'sape': 4139}
我想检查关键词' sape'存在与否?在方法中,我不知道参数的类型。如何转换为字典以检索键和值。
在方法中我想检查:
keys = tel.keys () ;
keys.__contains__('sap')
do something
但是,在方法中,我没有关于传递参数类型的信息。
答案 0 :(得分:0)
关于Python的几点注意事项:
Python不像C#那样静态类型化。函数/方法签名不包含参数的数据类型。因此,您不需要将传入的值强制转换为字典。相反,你假设传入的是字典并对其进行处理。如果您希望传递除字典之外的其他内容,您可以使用exception handling来捕获任何问题,也可以使用isinstance来检查传入的内容是否符合您的预期。已经说过了在python中确实存在了强制转换;例如,您可以通过str(1)将int 1转换为字符串。
另请注意,如果使用in
关键字,它将适用于任何可迭代而不仅仅是字典。
示例:
>>> 'jack' in 'lumberjack'
True
>>> tel = {'jack': 4098, 'sape': 4139}
>>> 'jack' in tel
True
>>>
如果你真的想检查是否有字典,你可以这样做:
>>> isinstance(tel,dict)
True