You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Python转换特定结构列表时触发IndexError: list index out of range问题

解决索引越界问题的正确实现

你的input_list结构是[[(问题文本, 上下文文本), 答案字符串], ...],每个子列表包含两个元素:第一个是存储问题和上下文的元组,第二个是答案字符串。之前的列表推导式错误地尝试直接取子列表的第0、1、2位元素,但每个子列表只有2个元素,因此触发IndexError。

正确的列表推导式需要先从子列表的第0位取出元组,再分别获取元组里的问题和上下文:

# 示例输入列表
input_list = [
    [("什么是Python?", "Python是一种高级编程语言"), "Python是一种面向对象、解释型的高级编程语言"],
    [("如何定义函数?", "在Python中使用def关键字"), "使用def关键字后跟函数名和参数列表,再写函数体"]
]

# 正确的转换逻辑
generated_answer = [
    {
        'question': item[0][0],
        'context': item[0][1],
        'answer': item[1]
    } for item in input_list
]

# 输出结果
print(generated_answer)

运行后会得到预期的字典列表:

[
    {'question': '什么是Python?', 'context': 'Python是一种高级编程语言', 'answer': 'Python是一种面向对象、解释型的高级编程语言'},
    {'question': '如何定义函数?', 'context': '在Python中使用def关键字', 'answer': '使用def关键字后跟函数名和参数列表,再写函数体'}
]

内容的提问来源于stack exchange,提问作者dilip kukadiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 14:24:53