Files
2026-07-29 14:59:37 +08:00

108 lines
3.0 KiB
Python
Raw Permalink 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-9 课示例:元组
#
# 本文件使用 Agent 固定配置作为统一示例,演示元组的主要操作。
# 示例无需用户输入,可以直接运行并对照注释观察结果。
# 一、创建多元素元组、空元组和单元素元组
agent_config = ("gpt-5", 0.7, 2000, True)
empty_config = ()
single_model = ("gpt-5",)
print(f"完整配置:{agent_config}")
print(f"空元组长度:{len(empty_config)}")
print(f"单元素元组:{single_model}")
print(f"单元素元组类型:{type(single_model)}")
# 二、索引和负索引
print(f"模型名称:{agent_config[0]}")
print(f"是否启用:{agent_config[-1]}")
# 三、切片
# 元组切片返回一个新元组。
basic_config = agent_config[:2]
remaining_config = agent_config[2:]
print(f"基础配置切片:{basic_config}")
print(f"其余配置切片:{remaining_config}")
# 四、成员判断、查找和统计
contains_model = "gpt-5" in agent_config
model_index = agent_config.index("gpt-5")
status_history = ("成功", "失败", "成功", "成功")
success_count = status_history.count("成功")
print(f"是否包含 gpt-5{contains_model}")
print(f"gpt-5 的索引:{model_index}")
print(f"成功出现次数:{success_count}")
# 五、遍历元组
supported_models = ("gpt-5", "o3", "gpt-4.1")
for number, model in enumerate(supported_models, start=1):
print(f"{number}. {model}")
# 六、拼接和重复
basic_settings = ("gpt-5", 0.7)
limit_settings = (2000, True)
full_settings = basic_settings + limit_settings
default_statuses = ("待处理",) * 3
print(f"拼接结果:{full_settings}")
print(f"重复结果:{default_statuses}")
# 七、通过创建新元组表达配置变更
# 原元组不会改变,新配置使用新的模型名称和原配置的其余元素。
new_config = ("o3",) + agent_config[1:]
print(f"原配置:{agent_config}")
print(f"新配置:{new_config}")
# 八、列表和元组转换
config_list = list(agent_config)
config_list[1] = 0.3
converted_config = tuple(config_list)
print(f"转换并修改后的配置:{converted_config}")
# 九、打包和解包
agent_snapshot = ("gpt-5", 0.7, 2000)
model_name, temperature, max_tokens = agent_snapshot
print(f"解包模型:{model_name}")
print(f"解包温度:{temperature}")
print(f"解包最大长度:{max_tokens}")
# 十、使用星号收集剩余元素
first_setting, *other_settings = agent_config
print(f"第一个配置:{first_setting}")
print(f"其余配置列表:{other_settings}")
print(f"其余配置的数据类型:{type(other_settings)}")
# 十一、交换两个变量
primary_model = "gpt-5"
backup_model = "o3"
primary_model, backup_model = backup_model, primary_model
print(f"交换后的主模型:{primary_model}")
print(f"交换后的备用模型:{backup_model}")
# 十二、元组内部包含列表
# 元组不能替换第二个元素,但第二个元素指向的列表可以修改自身内容。
agent_data = ("gpt-5", ["搜索", "计算"])
agent_data[1].append("写作")
print(f"包含列表的元组:{agent_data}")