当前位置:首页>python>驾驭AI的Python|第 7 课:使用 AI 完成任务列表

驾驭AI的Python|第 7 课:使用 AI 完成任务列表

  • 2026-08-22 08:49:09
驾驭AI的Python|第 7 课:使用 AI 完成任务列表
一、学习框架

第 7 课:使用 AI 完成任务列表

第 8 课:使用 for 循环重复执行任务

第 9 课:使用字典与 AI为任务设定优先级

第 10 课:使用列表、字典和 AI 自定义食谱

第 11 课:在 Python中比较数据

第 12 课:帮助 AI 做出决策

项目实战导引 2:开发奶茶店点单系统(进阶)

山河书籍与朝夕,公众号:山河书籍与朝夕驾驭AI的Python|导学课:零基础面向 AI 时代的 Python 入门与实战课程,不走传统编程学习的弯路。
驾驭AI的Python
二、学习内容
在接下来的几节课,我们将学习如何使用Python结合AI自动化地完成任务。代码最吸引人的地方之一就是它们能帮我们搞定那些重复又无聊的事情,不用人类再把时间浪费在上面,现在AI越来越聪明,连复杂的判断都能做不错,那把代码和AI结合起来,我们的效率和能力将会大幅提升。
另外,经过前面几节课对应模块的热身,后面也会适当增加内容,难度也相应增加。
前面几次课中,我们学习了变量,并了解了如何用一个变量来存储一个数据项,但在实际任务中,我们往往需要处理多个数据,如果用变量来依次保存这些数据,需要多次运行同样的代码,效率是很低的,而且容易出错。
在本课程中,你将学习如何用 Python 自动化任务,让程序替你完成重复操作并做出简单决策。
你还会掌握把多条数据组织在一起的能力。本课将介绍一个常用且强大的工具:列表(list)。
首先,我们先加载本课需要用到的函数。
from helper_functions import print_llm_response, get_llm_response
1、什么是列表(Lists)?

在上一门课程中,你学习了变量。每个变量存储一个单独的数据。

例如:

# 把“李白”存入变量namename = "李白"
假设我要为三位朋友各写一首诗。运行下面的代码单元,然后依次把名字改为 杜甫、白居易,每次修改后重新运行即可。
# 根据当前的 name 生成一段生日诗提示词并发送给 LLMprompt = f"""为我的朋友 {name} 写一首四行的生日诗。这首诗应符合我朋友的特点。"""print_llm_response(prompt)

更改 变量 的值往往需要频繁更新,效率不高。更好的做法是使用 列表(list) 来集中管理数据。

列表 是 Python 的一种数据类型,可一次性存储多个数据项,减少重复赋值,让数据更有条理。

2、创建一个列表

下面,你将创建一个 列表,其中包含以下姓名:"李白"、"杜甫" 和 "白居易"。
# 创建列表friends_list = ["李白", "杜甫", "白居易"]
如果看过之前文章,在《AI智能体-工作流|第一阶段:智能体系统|1、智能体基础-Coze的正确学习路径-变量详解》AI智能体-工作流|第一阶段:智能体系统|1、智能体基础-Coze的正确学习路径-变量详解,看到中括号及内部格式,你应该马上会反应过来,这不就是数组嘛!!!
因此,列表通过数组来存储数据。
# 打印这个列表print(friends_list)
friends_list 是一个 list 类型的单个变量,它包含多个值。
多个变量存储用数组(Array),数组内部不仅仅是一个数据,但数组作为一个大整体赋予了一个list 类型的单个变量,它内部包含多个值。
# 检查数据类型type(friends_list)
如何检查了一个列表list里面存储有多少个值?
你可以使用 len() 来检查列表中存储了多少个值:
# 检查列表长度len(friends_list)
len是length的英文缩写,翻译为长度,列表数组多长?列表数组多大?列表数组多少?
所以这个列表有三个元素。
你可以像以前使用变量一样,在 LLM 提示中使用列表。下面,你将 friends_list 包含在提示中,为 '李白'、'杜甫' 和 '白居易' 写四行生日诗。
# 生成一个包含朋友名单的生日诗提示词prompt = f"""为我的朋友 {friends_list} 分别写一组四行的生日诗。这首诗应符合朋友的特点。"""print(prompt)print_llm_response(prompt)
为我的朋友 ['李白', '杜甫', '白居易'] 分别写一组四行的生日诗。这首诗应符合朋友的特点。《贺李白生辰》谪仙醉笔撼昆仑,墨泻银河九派奔。莫问青崖白鹿客,一生原是盛唐魂。《贺杜甫生辰》秋风茅屋系苍生,笔底波澜带血鸣。纵使衣衫披万壑,孤灯犹照月华清。《贺白居易生辰》琵琶弦上说曾经,半匹红绡泪已倾。谁解香山居士意,诗成老妪亦堪听。

3、 访问列表中的单个元素

你可以从列表中访问单个元素。在《AI智能体-工作流|第一阶段:智能体系统|1、智能体基础-Coze的正确学习路径-变量详解》AI智能体-工作流|第一阶段:智能体系统|1、智能体基础-Coze的正确学习路径-变量详解中,数组内部数据格式多样,但第一个值从0开始排序,即从数组中拿取数据需要看序号。
fist_data_Array = list[0]
second_data__Array = list[1]
third_data__Array = list[2]
在python中,让我们问问 AI 该怎么做。
在Python中,你可以通过索引(index)来访问列表中的特定元素。列表的索引从0开始,依次递增。以下是访问 friend_list 中元素的方法:示例列表friend_list = ["李白", "杜甫", "白居易"]访问方式访问第一个元素("李白"):first_friend = friend_list[0]  # 索引 0print(first_friend)  # 输出: 李白访问第二个元素("杜甫"):second_friend = friend_list[1]  # 索引 1print(second_friend)  # 输出: 杜甫访问第三个元素("白居易"):third_friend = friend_list[2]  # 索引 2print(third_friend)  # 输出: 白居易其他常见操作负索引:从列表末尾开始访问(-1 是最后一个元素):last_friend = friend_list[-1]  # 输出: 白居易越界错误:如果索引超出范围(如 friend_list[3]),Python会抛出 IndexError。完整示例friend_list = ["李白", "杜甫", "白居易"]print(friend_list[0])  # 输出: 李白print(friend_list[-1]) # 输出: 白居易如果需要动态访问(如用户输入索引),记得先检查索引是否合法(0 ≤ 索引 < len(friend_list))。
例如,要访问第一个元素,你可以使用以下代码:
first_friend = friends_list[0] #将列表中序号为0的元素(也就是第一个元素)赋值给变量first_friendprint(first_friend)  
要访问第二个元素,你可以使用以下代码:
print(friends_list[1]) #直接打印列表中序号为1的元素(也就是第二个元素)
或者负索引
print(friends_list[-2]) #直接打印列表中序号为1的元素(也就是第二个元素)
请注意,访问第一个元素时,你使用了索引 0,访问第二个元素时,你使用了索引 1。因此,如果你执行以下操作,将会遇到错误。
print(friends_list[3]) # 列表中序号为3的元素是第四个元素,并不存在
访问第三个元素的正确做法是下面这样:
print(friends_list[2])
或者负索引
print(friends_list[-1])

4、 向列表中添加另一个元素

# 先检查列表中的现有元素print(friends_list)
如果你想向列表中添加一些数据(在现有数组数值之后排序增加),可以使用 list.append(new_data)。因此,要向你的 friends_list 添加 "王维",你可以运行以下代码:
# 通过append方法向列表中增加元素friends_list.append("王维")
# 打印更新后的列表print(friends_list)
自己试试——修改代码以添加另一位朋友,或者添加你自己
friends_list.append("小明")print(friends_list)

5、删除元素

白居易的名字有三个字,其他名字两个字的朋友都不喜欢他,所以你决定不再和白居易做朋友了。让我们使用 .remove() 将 白居易 从 friends_list 中移除:
# 通过remove方法删除列表中的元素friends_list.remove("白居易")# 打印更新后的列表print(friends_list)

6、包含其他数据类型的列表

列表可以存储任何类型的数据。例如,下面是一个由数字组成的列表:
# 包含三个数字的列表list_love = [5, 2, 0]print(list_love)
列表也可以存储长字符串。以下是一个可能构成待办事项清单的任务列表:
# 按优先级排序的任务列表。list_of_tasks = [    "给我的领导写一封简短的邮件,说明我明天的会议会迟到。",    "为孙悟空写一首生日诗,庆祝他的1024岁生日。",    "写一篇300字的电影评论,评论电影《哪吒之魔童降世》。"]

如果你想了解列表如何与 AI 配合使用,可以参考这个示例:

  • 列表中的每个元素都是字符串,可直接传给 print_llm_response()。
  • 若希望 LLM 自动处理列表中的任务,可将列表元素依次赋给变量 task,再传入 print_llm_response()。
# 列表中第一个任务赋值给task并传给AI交互函数task = list_of_tasks[0]print_llm_response(task)
# 列表中第二个任务赋值给task并传给AI交互函数task = list_of_tasks[1]print_llm_response(task)
# 列表中第三个任务赋值给task并传给AI交互函数task = list_of_tasks[2]print_llm_response(task)

你已经遍历了列表里的所有元素,但代码里仍然有很多重复,因为你需要逐个写出每个元素。

其实,有更好的方式——使用 for 循环。

下一课我们就来看看它是如何工作的。

三、练习
1、
📖 选择题 : 你想使用聊天机器人为朋友 杜甫 写一条生日祝福。你已将朋友的姓名存储在以下 Python 列表中:
 friends_list = ["李白", "杜甫", "白居易"] 
在下面这行代码的大括号 `{}` 内,应该填入什么,以正确识别 杜甫 为消息的接收人?
 prompt = f"""为我的朋友 {} 写一个四行的生日祝福语."""
A. friends_list(2) 
B. friends_list(1) 
C. friends_list[1]
D. friends_list[2]
2、
📖 选择题 : 你希望使用 AI 推荐一个制作水果沙拉的食谱。
 你创建了一个 Python 列表,存储当前厨房桌上的水果:
 fruit_list = ["苹果", "橙子", "香蕉"]
 然后,你在冰箱里发现了一些葡萄。以下哪行 Python 代码可以正确地将葡萄添加到水果列表中? A. fruit_list.insert("葡萄") 
B. fruit_list.push("葡萄") 
C. fruit_list.add("葡萄") 
D. fruit_list.append("葡萄")
3、
# 创建一个包含你最喜欢的五部电影名称的列表### 在下面编写代码 ###movie_list = ### --------------- ###print(movie_list)
# 创建一个包含你最喜欢的五部电影名称的列表### 在下面编写代码 ###movie_list = ["电影1","电影2","电影3","电影4","电影5"]### --------------- ###print(movie_list)
4、
# 使用 print() 显示以下列表的第四个元素prime_numbers = [2, 3, 5, 7, 11]### 在下面编写代码 ###### --------------- ###
# 使用 print() 显示以下列表的第四个元素prime_numbers = [2, 3, 5, 7, 11]### 在下面编写代码 ###print(prime_numbers[3])### --------------- ###
5、
# 用 append 在 friends_list 中增加一个朋友的名字friends_list = ["李白", "杜甫", "白居易", "王维"]### 在下面编写代码 ###### --------------- ###print(friends_list)
# 用 append 在 friends_list 中增加一个朋友的名字friends_list = ["李白", "杜甫", "白居易", "王维"]### 在下面编写代码 ###friends_list.append("科比")### --------------- ###print(friends_list)
6、
# 用 remove 在 countries_in_asia 中,移除不属于亚洲的国家countries_in_asia = ["中国", "日本", "韩国", "法国", "印度"]### 在下面编写代码 ###### --------------- ###print(countries_in_asia)
# 用 remove 在 countries_in_asia 中,移除不属于亚洲的国家countries_in_asia = ["中国", "日本", "韩国", "法国", "印度"]### 在下面编写代码 ###countries_in_asia.remove("法国")### --------------- ###print(countries_in_asia)

最新文章

随机文章