Python入门实战:用LLM API从列表切片生成商品文案
从Python列表切片基础出发,逐步深入高级用法,最终落地调用LLMAPI生成Amazon商品文案的实战案例。涵盖切片语法、字符串处理、Prompt设计原则及OpenAI兼容接口调用,实现英文商品标题、卖点与价格区间的自动化输出。
Python List 切片与 LLM API 调用实战指南
Python 在数据科学和 AI 领域中的地位无需赘言——语法简洁、生态丰富,使其成为调用大模型 API 的首选语言。本文从最基础的列表操作入手,逐步深入切片的高级用法,最后落地到一个完整的实战案例:调用 LLM API 生成 Amazon 商品文案。

一、Python 列表(List)基础
1.1 列表的特性
Python 中没有像 Java 或 C++ 那种固定长度的数组,取而代之的是 List——一个灵活、有序、可动态修改的通用容器:
names = ["张三", "李四", "王五", "赵六", "刘七"]
列表的核心特性整理如下:
| 特性 | 说明 |
|---|---|
| 动态长度 | 无需预先指定容量,可随时增删元素 |
| 类型不约束 | 同一列表内可混合多种数据类型 |
| 有序可修改 | 支持索引访问,也能原地修改元素 |
1.2 基本操作示例
L = ["张三", "李四", "王五", "赵六", "刘七"]# 传统方式:取前三个元素
r = []
for i in range(3): # range(n) 生成 0 到 n-1 的整数序列
r.append(L[i])
# 结果:['张三', '李四', '王五']
这段代码虽然能运行,但略显繁琐。Python 提供了更简洁的方案——切片。
二、切片(Slice):Python 的高效元素截取
2.1 基本语法
切片是 Python 专门用于截取序列(列表、字符串等)部分元素的语法,格式如下:
sequence[start:stop:step]
| 参数 | 说明 |
|---|---|
start | 起始索引(包含),省略时默认 0 |
stop | 结束索引(不包含),省略时默认序列长度 |
step | 步长,省略时默认 1 |
2.2 常用示例
L = ["张三", "李四", "王五", "赵六", "刘七"]L[0:3] # ['张三', '李四', '王五'] — 从索引 0 到 2
L[:3] # ['张三', '李四', '王五'] — 省略 start,默认从 0 开始
L[1:3] # ['李四', '王五'] — 从索引 1 到 2
L[-2:] # ['赵六', '刘七'] — 负数索引,取最后两个
2.3 进阶用法
L = list(range(100)) # 生成 [0, 1, 2, ..., 99]L[:10] # [0, 1, 2, ..., 9] — 前 10 个元素
L[-10:] # [90, 91, ..., 99] — 最后 10 个元素
L[:10:2] # [0, 2, 4, 6, 8] — 前 10 个,步长为 2
L[::5] # [0, 5, 10, ..., 95] — 全部元素,步长为 5
L[::-1] # [99, 98, ..., 1, 0] — 反转序列
看到 L[::-1] 了吗?一行代码即可反转列表,这个技巧在实际开发中非常实用。
2.4 字符串切片
字符串本质上是序列,因此切片操作同样适用于字符串:
text = "ABCDEFG"text[:3] # 'ABC'
text[::2] # 'ACEG'
text[::-1] # 'GFEDCBA'
2.5 实战:手写 trim 函数
结合切片和双指针思想,实现一个去除字符串首尾空格的功能——看似简单,却常出现在面试题中:
def trim(s):
# 左指针:找到第一个非空格字符
left = 0
while left < len(s) and s[left] == ' ':
left += 1
# 右指针:找到最后一个非空格字符
right = len(s)
while right > left and s[right - 1] == ' ':
right -= 1
# 切片截取中间部分
return s[left:right]print(trim(" hello world "))
# 输出:hello world
实现思路清晰:
- 左指针从左向右移动,跳过前导空格
- 右指针从右向左移动,跳过后缀空格
- 用
s[left:right]切片截取干净内容
三、调用大语言模型 API
3.1 LLM 接口生态概述
目前大语言模型 API 的生态大致如下:
| 厂商 | 代表模型 | 接口特点 |
|---|---|---|
| OpenAI | GPT 系列 | 行业标准,Completion/Chat API |
| 部分国内厂商 | 各自主模型 | 兼容 OpenAI 接口格式 |
| Anthropic | Claude | 自有接口规范 |
| Gemini | 自有接口规范 |
关键优势:OpenAI 的接口已成为事实标准,众多厂商选择兼容这套 API 格式。对开发者而言,只需掌握一种调用方式,即可在不同模型间切换。
3.2 环境准备
安装 OpenAI 官方 Python SDK:
pip install openai
3.3 客户端初始化
from openai import OpenAIclient = OpenAI(
api_key="your-api-key", # API 密钥
base_url="https://your-endpoint/v1" # API 服务端点
)COMPLETION_MODEL = "your-model-name"
3.4 Prompt 设计原则
要获得高质量的模型输出,Prompt 设计需要讲究策略:
| 原则 | 说明 | 示例 |
|---|---|---|
| 目标清晰 | 明确描述任务目标 | "Compose product title within 20 words" |
| 分步描述 | 将复杂任务分解为步骤 | 用 1/2/3 编号列出 |
| 格式约束 | 指定输出格式,便于解析 | "Output in JSON format" |
3.5 完整实战:商品文案生成
下面是一个实际案例——利用 LLM API 为中文商品生成英文 Amazon 文案:
prompt = """
Consideration product:
工厂现货PVC充气青蛙夜市地摊热卖充气玩具发光蛙儿童水上玩具1. Compose human readable product title used on
Amazon in english within 20 words.
2. Write 5 selling points for the products in Amazon.
3. Evaluate a price range for this product in U.S.Output the result in json format with
three properties called title, selling_points and
price_range
"""def get_response(prompt):
response = client.chat.completions.create(
model=COMPLETION_MODEL,
messages=[
{"role": "user", "content": prompt}
]
)
return response.choices[0].message.contentprint(get_response(prompt))
3.6 输出结果
{
"title": "Inflatable PVC Frog Toy with LED Light for Kids Night Market Water Fun",
"selling_points": [
"Bright LED lights make the frog glow for exciting night play.",
"Made from durable PVC material, perfect for water and pool fun.",
"Lightweight and easy to inflate, deflate, and carry.",
"Attracts attention at markets and events, ideal for resale.",
"Safe and fun for children ages 3+, great for outdoor activities."
],
"price_range": "$8.99 - $14.99"
}
四、Jupyter Notebook:交互式开发环境
4.1 核心特性
Jupyter Notebook(后缀.ipynb)是数据分析、机器学习实验的首选利器:
- 代码单元(Cell):可独立运行一段代码片段
- 文本单元(Markdown Cell):用于记录笔记、编写文档
- 即时输出:运行结果直接显示在代码下方
- 适用场景:数据分析、模型实验、边学边记笔记
4.2 与传统开发方式的对比
传统 .py 文件开发流程:
编写完整代码 → 运行脚本 → 查看结果 → 调试修改
Notebook 开发流程:
编写代码片段 → 即时运行 → 查看结果 → 记录笔记 → 继续编写
Notebook 这种即时反馈机制,在实验或学习新知识时,能显著提升效率。
五、Python 与 JavaScript 对比速查
如果你之前主要写前端,下面这张对照表可帮你快速上手 Python 语法:
| 操作 | JavaScript | Python |
|---|---|---|
| 创建列表 | [1, 2, 3] | [1, 2, 3] |
| 取前 N 个 | arr.slice(0, n) | lst[:n] |
| 取后 N 个 | arr.slice(-n) | lst[-n:] |
| 每隔 N 个取 | arr.filter((_, i) => i % N === 0) | lst[::N] |
| 反转序列 | arr.reverse() | lst[::-1] |
| 去除空格 | str.trim() | str.strip() |
| 字符串长度 | str.length | len(str) |
| 模板字符串 | `${name}` | f"{name}" |
| 对象实例化 | new Client() | Client() |
六、总结
本文覆盖了以下几个方面:
- Python List:一种动态、灵活的通用容器,比传统数组更易用
- Slice 切片:
[start:stop:step]语法,几行代码实现元素截取 - LLM API 调用:通过 OpenAI 兼容接口,轻松调用大语言模型能力
- Prompt 工程:说清需求、分步骤、定格式,是获得优质结果的关键
- Jupyter Notebook:交互式开发,特别适合边学边写、边写边测
打好这些基础后,再研究多轮对话、Function Calling、流式输出等高级玩法,将更加顺畅。
标签:Python LLM API Slice Prompt Engineering
