Python中字典的.get方法和.get()调用方式有什么区别?
Python字典
d.get与d.get()的差异说明 首先先纠正一处语法问题:你给出的字典定义代码使用了列表的方括号[],字典需要用花括号{}声明,正确写法为:
d = {'a': 1 , 'b':3}
两者的核心差异如下:
d.get:是字典实例d绑定的get方法对象本身,它本质是一个可调用的内存引用,没有执行任何查询逻辑,所以直接打印会输出方法的类型和内存地址<built-in method get of dict object at .........>。
这种不带括号的方法对象可以直接作为参数传入高阶函数使用,比如批量查询多个键对应值的场景:keys = ['a', 'b', 'c'] # 直接把d.get作为map的处理函数 values = list(map(d.get, keys)) # 输出结果为 [1, 3, None]d.get():是执行调用get方法的语法,会根据你传入的参数执行字典查询逻辑,返回对应的结果。你用到的d.get('a')就是传入键'a'执行查询,返回对应值1;如果查询不存在的键默认返回None,也可以自定义默认返回值,比如d.get('c', 0)会返回0而非None。
内容的提问来源于stack exchange,提问作者RafaelSantiago94
相关产品推荐
相关产品推荐

