Files
PythonLearn/01_python基础/1_10_字典/dictionaries.py
2026-07-29 16:31:08 +08:00

119 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第 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}")