feat(python基础): 新增元组教学课程
This commit is contained in:
107
01_python基础/1_9_元组/tuples.py
Normal file
107
01_python基础/1_9_元组/tuples.py
Normal file
@@ -0,0 +1,107 @@
|
||||
# 第 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}")
|
||||
Reference in New Issue
Block a user