Python列表与LLM接口实战:从切片到DeepSeek调用

当Python的灵活列表遇上大模型的智能接口,会碰撞出怎样的火花?

前言

最近在学习笔记中整理了Python列表的特性和LLM接口调用的相关知识,发现两者结合能做出不少有趣的东西。本文将从Python列表的基础特性讲起,逐步深入到切片操作,最后通过一个实际案例展示如何调用DeepSeek的API来生成电商产品文案。


一、Python列表:比数组更灵活的容器

1.1 列表 vs 数组

在Python中,最常用的有序容器不是数组,而是列表(List) 。与Java、C++中的数组相比,Python列表有几个显著特点:

特性 Python List Java/C++ 数组
长度可变 ✅ 动态扩展 ❌ 固定容量
类型约束 ❌ 不限制 ✅ 类型一致
语法简洁 ✅ 原生支持 相对繁琐

简单来说,Python列表和JavaScript的Array非常像------不用提前指定容量,值的类型也不需要保持一致。事实上,JavaScript的数组设计确实借鉴了Python的很多特性。

1.2 应用场景差异

虽然JS数组和Python列表看起来很相似,但它们的适用场景截然不同:

  • JavaScript :适合做页面展示和交互。但JS不适合做复杂计算,因为它只有Number类型,没有独立的浮点数类型和高精度类型。
  • Python:适合机器学习、爬虫、数据分析。Python拥有丰富的数据科学生态(NumPy、pandas、scikit-learn等),这是JS难以比拟的。

1.3 基础操作示例

python

scss 复制代码
# 创建一个列表
L = ["曹辉", "赖庆庆", "周文强", "徐波", "胡航"]

# 取前三项 - 笨办法
[L[0], L[1], L[2]]  # ['曹辉', '赖庆庆', '周文强']

# 动态获取前n项
r = []
n = 3
for i in range(n):
    r.append(L[i])
print(r)  # ['曹辉', '赖庆庆', '周文强']

💡 一句话总结:人生苦短,我用Python ------ 列表操作也能体现这一点。


二、切片(Slice):让取子集优雅起来

2.1 什么是切片?

切片是Python中一个非常强大的特性,它大大简化了取部分元素的操作 。语法格式为 [start:end:step]

  • start:起始索引(包含)
  • end:结束索引(不包含)
  • step:步长(可选,默认为1)

2.2 切片实战

python

ini 复制代码
L = ["曹辉", "赖庆庆", "周文强", "徐波", "胡航"]

# 基础切片
L[0:3]   # ['曹辉', '赖庆庆', '周文强'] - 取前3个
L[3]     # '徐波' - 取单个元素
L[1:3]   # ['赖庆庆', '周文强'] - 取索引1到2
L[-2:]   # ['徐波', '胡航'] - 取最后2个

# 创建0-99的列表
L = list(range(100))

L[:10]      # 前10个数:[0,1,2,...,9]
L[-10:]     # 后10个数:[90,91,...,99]
L[10:20]    # 第11到20个数

# 步长切片
L[::5]      # 每隔5个取一个:[0,5,10,...,95]

# 字符串也可以用切片
"ABCDEFG"[::2]   # 'ACEG' - 隔一个取一个
"ABCDEFG"[::3]   # 'ADG'
"ABCDEFG"[:3]    # 'ABC'

2.3 进阶练习:手动实现trim函数

📝 题目 :实现一个trim函数,去除字符串首尾的空格,但不能使用strip()方法,只能利用切片。

python

sql 复制代码
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'

核心思路:双指针定位首尾非空格位置,然后通过切片截取。


三、LLM接口:接入大模型的世界

3.1 主流LLM厂商

自OpenAI基于Google开源的Transformer架构推出GPT系列以来,生成式人工智能浪潮席卷全球。目前主流的大模型厂商及特点:

厂商 模型 特点
OpenAI GPT系列 行业标准,引领22年底的AIGC浪潮
DeepSeek DeepSeek系列 兼容OpenAI API,性价比高
Google Gemini 原生多模态,生态整合
Anthropic Claude 安全性强,上下文窗口大

💡 好消息:DeepSeek的API完全兼容OpenAI的接口规范,这意味着你只需要更换base_urlapi_key,代码几乎不用改动!

3.2 Completion接口与Prompt工程

调用LLM的核心是Prompt(提示词) ------你向模型提问的方式直接决定了回答的质量。

高质量Prompt的要点:

  1. 清晰且详细地表达目标:不要模糊,越具体越好
  2. 分步骤引导:使用1、2、3的方式拆解任务
  3. 约束输出格式:指定JSON、Markdown等格式,便于后续处理
  4. 字段命名清晰:让模型知道你期望什么结构

四、实战:调用DeepSeek生成亚马逊产品文案

4.1 环境准备

首先安装OpenAI库(DeepSeek兼容):

bash

复制代码
pip install openai

4.2 完整代码

python

python 复制代码
from openai import OpenAI

# 初始化客户端(Python中直接调用构造函数,不用new关键字)
client = OpenAI(
    api_key="sk-你的API密钥",
    base_url="https://api.deepseek.com/v1"
)

MODEL_NAME = "deepseek-chat"

# 精心设计的Prompt
prompt = """Consideration product:
工厂现货PVC充气青蛙夜市地摊热卖充气玩具发光蛙儿童水上玩具

请完成以下任务:
1. 生成一个适合亚马逊平台、20个单词以内的英文产品标题
2. 列出5个产品卖点
3. 评估在美国市场的合理价格区间

输出JSON格式,包含三个属性:title, selling_points, price_range
"""

def get_response(prompt):
    """发送请求并获取响应"""
    try:
        response = client.chat.completions.create(
            model=MODEL_NAME,
            messages=[
                {"role": "user", "content": prompt}
            ],
            temperature=0.7  # 控制创造力,0-1之间
        )
        return response.choices[0].message.content
    except Exception as e:
        return f"请求出错:{e}"

# 执行调用
result = get_response(prompt)
print(result)

4.3 预期输出示例

json

bash 复制代码
{
  "title": "Inflatable Glowing PVC Frog Toy for Kids, LED Light Up Water Pool Float, Outdoor Summer Bath Beach Carnival Game Supplies",
  "selling_points": [
    "Bright LED lights attract children and create fun night atmosphere",
    "Durable PVC material withstands rough play and water exposure",
    "Perfect for pool parties, beach trips, and夜市 (night market) stalls",
    "Lightweight and foldable for easy carrying and storage",
    "Suitable for ages 3+ with safe, non-toxic materials"
  ],
  "price_range": "$8.99 - $15.99"
}

4.4 代码解读

部分 说明
from openai import OpenAI 引入OpenAI模块(ModelScope也内置了此模块)
client = OpenAI(...) Python实例化无需new,直接调用构造函数
三引号字符串 """ 内部可以换行,适合写多行Prompt
temperature=0.7 控制输出随机性,0最确定,1最随机

五、总结

本文我们从Python列表的基础特性出发,掌握了:

  1. 列表的灵活性:动态长度、无类型约束,让它成为Python中最常用的有序容器
  2. 切片的优雅[start:end:step] 一行代码代替循环,大大提升开发效率
  3. LLM接口调用:以DeepSeek为例,展示了如何用OpenAI兼容的方式调用大模型
  4. Prompt工程实践:通过结构化提示词,让模型输出可控的JSON格式数据

Python的简洁语法 + 大模型的智能能力,让很多原本复杂的工作变得异常简单。希望你也能在自己的项目中灵活运用这些技巧!

相关推荐
Yoshizawa-Violet1 小时前
模板方法模式实战:重构Agent工具审批,告别重复代码
python·agent·模板方法
搬砖的小码农_Sky1 小时前
macOS Sequoia上如何安装Python开发环境?
开发语言·python·macos
Rauser Mack1 小时前
编程纯小白,五分钟用AI做了个小游戏(附Prompt)
人工智能·python·html·prompt·ai编程
py小王子1 小时前
期刊复现| Python 实现带边缘密度与残差检验的回归拟合图
python·期刊复现
deepin_sir1 小时前
14 - 面向对象编程
开发语言·python
知识分享小能手1 小时前
Flask入门学习教程,从入门到精通,Flask智能租房——列表页 知识点详解(7)
python·学习·flask
极客小云1 小时前
【从 while 循环到可视化智能体:深入拆解 Agent Loop、Codex 风格工具调用、OpenClaw 与 Hermes 背后的技术细节】
数据库·python·大模型·agent·codex·openclaw·hermes
Larcher2 小时前
Python List、切片与大模型:从入门到实践的优雅之旅
python·ai编程
用户6337197359012 小时前
_winapi.CreateProcess....FileNotFoundError: [WinError 2] 系统找不到指定的文件
python