# 第 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}")