101 lines
2.8 KiB
Python
101 lines
2.8 KiB
Python
# 第 1-8 课示例:列表
|
||
#
|
||
# 本文件使用 Agent 开发工具作为统一示例,演示列表的主要操作。
|
||
# 示例无需用户输入,可以直接运行并对照注释观察结果。
|
||
|
||
|
||
# 一、创建列表并读取元素
|
||
agent_tools = ["Python", "FastAPI", "Django"]
|
||
print(f"完整工具列表:{agent_tools}")
|
||
print(f"工具数量:{len(agent_tools)}")
|
||
print(f"第一个工具:{agent_tools[0]}")
|
||
print(f"最后一个工具:{agent_tools[-1]}")
|
||
|
||
|
||
# 二、切片返回一个新列表
|
||
backend_tools = agent_tools[1:]
|
||
print(f"后端框架切片:{backend_tools}")
|
||
|
||
|
||
# 三、修改指定位置的元素
|
||
# 列表是可变对象,可以直接修改已有索引对应的元素。
|
||
agent_tools[2] = "Pydantic"
|
||
print(f"修改后的列表:{agent_tools}")
|
||
|
||
|
||
# 四、添加元素
|
||
agent_tools.append("Django")
|
||
agent_tools.insert(1, "Git")
|
||
agent_tools.extend(["LangChain", "OpenAI SDK"])
|
||
print(f"添加后的列表:{agent_tools}")
|
||
|
||
|
||
# 五、删除元素
|
||
# remove() 按内容删除;pop() 按位置删除并返回被删除的数据。
|
||
if "Git" in agent_tools:
|
||
agent_tools.remove("Git")
|
||
|
||
removed_tool = agent_tools.pop()
|
||
print(f"pop() 删除的工具:{removed_tool}")
|
||
print(f"删除后的列表:{agent_tools}")
|
||
|
||
|
||
# 六、查找和统计
|
||
contains_fastapi = "FastAPI" in agent_tools
|
||
fastapi_index = agent_tools.index("FastAPI")
|
||
python_count = agent_tools.count("Python")
|
||
|
||
print(f"是否包含 FastAPI:{contains_fastapi}")
|
||
print(f"FastAPI 的索引:{fastapi_index}")
|
||
print(f"Python 出现次数:{python_count}")
|
||
|
||
|
||
# 七、排序和反转
|
||
# sorted() 返回新列表,不改变原列表。
|
||
sorted_tools = sorted(agent_tools)
|
||
print(f"原列表:{agent_tools}")
|
||
print(f"排序后的新列表:{sorted_tools}")
|
||
|
||
# reverse() 直接修改当前列表顺序。
|
||
agent_tools.reverse()
|
||
print(f"反转后的原列表:{agent_tools}")
|
||
|
||
|
||
# 八、直接遍历元素
|
||
for tool in agent_tools:
|
||
print(f"正在学习:{tool}")
|
||
|
||
|
||
# 九、使用 enumerate() 同时取得编号和元素
|
||
for number, tool in enumerate(agent_tools, start=1):
|
||
print(f"{number}. {tool}")
|
||
|
||
|
||
# 十、简单二维列表
|
||
# 每条内部列表保存工具名称和用途。
|
||
tool_records = [
|
||
["Python", "基础编程"],
|
||
["FastAPI", "接口开发"],
|
||
["Django", "Web 应用"],
|
||
]
|
||
|
||
for record in tool_records:
|
||
print(f"工具:{record[0]},用途:{record[1]}")
|
||
|
||
|
||
# 十一、直接赋值与复制
|
||
# alias_tools 和 original_tools 指向同一个列表。
|
||
original_tools = ["Python", "FastAPI"]
|
||
alias_tools = original_tools
|
||
alias_tools.append("Django")
|
||
|
||
print(f"直接赋值后的原列表:{original_tools}")
|
||
print(f"直接赋值后的别名列表:{alias_tools}")
|
||
|
||
# copy() 为简单列表创建独立副本。
|
||
copied_tools = original_tools.copy()
|
||
copied_tools.append("LangChain")
|
||
|
||
print(f"复制后保持不变的原列表:{original_tools}")
|
||
print(f"修改后的副本:{copied_tools}")
|