# 第 1-10 课示例:字典 # # 本文件使用 Agent 配置作为统一示例,演示字典的主要操作。 # 示例无需用户输入,可以直接运行并对照注释观察结果。 # 一、创建字典并读取字段 agent_config = { "model": "gpt-5", "temperature": 0.7, "max_tokens": 2000, "enabled": True, } print(f"完整配置:{agent_config}") print(f"配置字段数量:{len(agent_config)}") print(f"模型名称:{agent_config['model']}") # 二、使用 get() 安全读取 # timeout 不存在,因此返回指定的默认值 30。 timeout = agent_config.get("timeout", 30) print(f"超时时间:{timeout}") # 三、添加和修改字段 agent_config["timeout"] = 60 agent_config["temperature"] = 0.3 print(f"添加和修改后的配置:{agent_config}") # 四、使用 update() 更新多个字段 agent_config.update({ "temperature": 0.2, "retries": 3, }) print(f"批量更新后的配置:{agent_config}") # 五、删除字段 # pop() 返回被删除的值;提供默认值可以避免键不存在时报错。 removed_retries = agent_config.pop("retries", None) print(f"被删除的重试次数:{removed_retries}") if "timeout" in agent_config: del agent_config["timeout"] print(f"删除后的配置:{agent_config}") # 六、遍历键、值和键值对 print("所有键:") for key in agent_config.keys(): print(key) print("所有值:") for value in agent_config.values(): print(value) print("所有键值对:") for key, value in agent_config.items(): print(f"{key}:{value}") # 七、嵌套字典 nested_config = { "model": { "name": "gpt-5", "temperature": 0.7, }, "runtime": { "timeout": 30, "enabled": True, }, } print(f"嵌套模型名称:{nested_config['model']['name']}") print(f"嵌套超时时间:{nested_config['runtime']['timeout']}") # 八、列表中保存多个字典 agents = [ {"name": "代码助手", "model": "gpt-5", "enabled": True}, {"name": "搜索助手", "model": "o3", "enabled": False}, ] for agent in agents: # 使用已经学过的普通条件判断,把布尔值转换成更容易阅读的中文状态。 if agent["enabled"]: status_text = "启用" else: status_text = "停用" print(f"{agent['name']}:{agent['model']},状态:{status_text}") # 九、字典中保存列表 agent_profile = { "name": "代码助手", "tools": ["搜索", "计算"], } agent_profile["tools"].append("写作") print(f"Agent 工具:{agent_profile['tools']}") # 十、直接赋值与复制 original_config = {"model": "gpt-5", "enabled": True} alias_config = original_config alias_config["model"] = "o3" print(f"直接赋值后的原字典:{original_config}") print(f"直接赋值后的别名字典:{alias_config}") copied_config = original_config.copy() copied_config["model"] = "gpt-5" print(f"复制后保持不变的原字典:{original_config}") print(f"修改后的副本:{copied_config}")