推理基础设施 · Python2.1 列表的增删改查
02
列表 / 字典操作 · 1 / 6

2.1 列表的增删改查

💡 一批推理请求就是一个 list;动态拼 batch 是推理服务的核心操作

2.1 列表的增删改查

list = 可变、有序、允许重复

prompts = ["hi", "hello"]

# 查
prompts[0]               # "hi"
prompts[-1]              # "hello"(倒数第 1 个)
len(prompts)              # 2
"hi" in prompts           # True

# 增
prompts.append("hey")     # 末尾加一个
prompts.insert(0, "yo")   # 开头插一个
prompts.extend(["a", "b"]) # 末尾拼另一个 list

# 改
prompts[0] = "改写"

# 删
prompts.pop()             # 删末尾并返回
prompts.pop(0)            # 按索引删
prompts.remove("hi")      # 按值删(删第一个匹配)
del prompts[0]            # 按索引删(不返回值)

示范

batch = []
batch.append({"id": 1, "prompt": "hi"})
batch.append({"id": 2, "prompt": "hello"})
print(batch[0]["prompt"])     # hi
batch[-1]["prompt"] = "改写后的 hello"
print(batch)

✍️ 练习

从一个空 list 开始,按顺序执行:

  1. append "request-1"
  2. append "request-2"
  3. insert(0, "request-0")
  4. 把索引 1 的元素改成 "request-X"
  5. 删掉末尾元素

每一步后用 print 打印当前 list。

💡 思路提示

点开看提示
  1. 注意:insert 后列表会变长,再访问索引时要算清楚
  2. 改完后用 print(list) 看整体
  3. pop() 默认删末尾,会返回被删的值

✅ 参考解法

写不出来再打开
prompts = []
prompts.append("request-1")
print(prompts)

prompts.append("request-2")
print(prompts)

prompts.insert(0, "request-0")
print(prompts)

prompts[1] = "request-X"
print(prompts)

prompts.pop()
print(prompts)

🔍 进阶思考

appendextend 的区别:

  • append(x):把整个对象塞进去(list 里嵌套一个 list)
  • extend(iter):把元素一个个拆开铺平