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

相关推荐
hhzz3 小时前
Python大数据实战(十六):音乐推荐系统——基于协同过滤算法构建个性化歌单引擎
大数据·人工智能·python·数据挖掘·数据分析
SunnyDays10113 小时前
Python PDF 转 Markdown 详解(转换整个文档,特定页面,表格,扫描 PDF)
python·pdf 转 markdown·pdf 转 md·扫描 pdf 转 md·pdf 表格转 md
2601_954706494 小时前
云手机 API 自动化实战:Python 批量控机、挂机脚本完整实现
python·智能手机·自动化
Alan_6917 小时前
聊聊 Swagger/Postman/Apifox 的真实选型与 Python 项目实战
python·测试工具·postman
智慧物业老杨8 小时前
物业绿化数智化权责管控方案:基于工单平台的双层权限追溯模块落地实践
python
Metaphor6929 小时前
使用 Python 在 Word 文档中添加批注
python·word
FreakStudio9 小时前
WIZnet 开源方案分享:W55MH32 开发板 + 小智 AI实现以太网版本的小智机器人
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
会周易的程序员9 小时前
使用 pybind11 封装 C++ 日志库 microLog 为 Python 模块
java·c++·python·物联网·架构·日志·aiot
一只专注api接口开发的技术猿9 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
HAPPY酷9 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda