
首先我将介绍python 中get()函数的意义及用法get()主要是字典dict的方法用于安全地获取键对应的值避免因键不存在而抛出KeyError异常。一、基本语法pythondict.get(key, defaultNone)参数说明key要查找的键default可选键不存在时返回的默认值默认为None返回值键存在 → 返回对应的值键不存在 → 返回default不传则为None二、与dict[key]的区别pythond {name: Tom, age: 18} # 方式1直接用 [] print(d[name]) # Tom # print(d[gender]) # ❌ KeyError: gender # 方式2用 get() print(d.get(name)) # Tom print(d.get(gender)) # None不报错 print(d.get(gender, 未知)) # 未知核心意义get()不会因键缺失而报错。三、常见用法1. 提供默认值pythonconfig {host: localhost} port config.get(port, 8080)2. 替代if key in dict判断python# 啰嗦写法 if name in d: value d[name] else: value 默认 # 简洁写法 value d.get(name, 默认)3. 计数场景pythonwords [a, b, a, c, a] count {} for w in words: count[w] count.get(w, 0) 1 # {a: 3, b: 1, c: 1}4. 分组场景pythondata [(fruit, apple), (veg, carrot), (fruit, banana)] groups {} for k, v in data: groups.setdefault(k, []).append(v) # 或配合 get # {fruit: [apple, banana], veg: [carrot]}5. 链式安全访问嵌套字典pythonuser {info: {name: Tom}} name user.get(info, {}).get(name, 未知) # Tom四、注意事项get()不会修改字典键不存在时也不会自动添加键。pythond {} d.get(x, 10) # 返回 10 print(d) # {} —— 字典仍是空的如需不存在则添加用setdefault()pythond.setdefault(x, 10) # d 变为 {x: 10}默认值只在键缺失时返回。若键存在但值为None返回的是None不是默认值pythond {x: None} print(d.get(x, 100)) # None不是 100get()是字典的方法列表、集合等没有此方法列表有.index()但语义不同。五、实用案例data.txt,其中记录了2019年QS全球大学排名前20名的学校信息示例如下1,麻省理工学院美国2,斯坦福大学美国3,哈佛大学,美国第一列为排名第2列为学校名称第3列为学校所属的国家字段之间用逗号”隔开程序读取data.txt文件内容统计出现的国家个数以及每个国家上榜大学的数量及名称输出结果格式示例如下:美国:11:麻省理工学院斯坦福大学 哈佛大学加州理工学院芝加哥大学 普林斯顿大学康奈尔大学 耶鲁大学哥伦比亚大学 宾夕法尼亚大学密歇根大学安娜堡分校英国:5:牛津大学 剑桥大学帝国理工学院伦敦大学学院 爱丁堡大学如何使用get函数实现相同键不同值的统计呢f open(data.txt, r,encodingutf-8) dic{} for line in f: iline.strip().split(,) if len(i)3: continue dic[i[-1]]dic.get(i[-1],[])[i[1]] unislist(dic.items()) unis.sort(keylambda x:len(x[1]),reverseTrue) for d in unis: print({:4}: {:4} : {}.format(d[0],len(d[1]),,.join(d[1])))六、其他对象的getrequests库response.get(url)发送 GET 请求不同于字典。Queuequeue.get()从队列取元素。Tkinter 变量var.get()获取控件值。这些是不同类的同名方法语义各异但字典.get() 是最常见、最需要掌握的用法。总结场景推荐确定键存在d[key]键可能不存在d.get(key, default)不存在则添加d.setdefault(key, default)get()的本质是容错取值是写健壮 Python 代码的高频工具。github.0voice