IndexError:列表赋值索引在python中超出范围

时间:2013-12-04 10:00:16

标签: python dictionary

IndexError:列表赋值索引在python中超出范围 我究竟做错了什么。我是新手

actual_ans_dict = []
for data in prsnobj.result:
    actual_ans_dict[data[0]] = data[1]
    print actual_ans_dict

2 个答案:

答案 0 :(得分:4)

actual_ans_dict是一个空列表。您正尝试将值设置为actual_ans_dict[data[0]],但不存在具有此索引的元素 您可以将actual_ans_dict的类型更改为dict

actual_ans_dict = {}
for data in prsnobj.result:
    actual_ans_dict[data[0]] = data[1]
    print actual_ans_dict

答案 1 :(得分:1)

这是因为您的actual_ans_dict为空,这意味着它还没有任何索引。

actual_ans_dict = [None]*max([data[0] for data in prsnobj.result])  # not very pythonic, actualy
for data in prsnobj.result:
    actual_ans_dict[data[0]] = data[1]
    print actual_ans_dict

这将使您能够为特定索引分配值。 有一种更正确,更短的方法:

actual_ans_dict = [data[1] for data in prsnobj.result]