解决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
相关产品推荐
相关产品推荐

