索引器错误:在python中列表分配索引超出范围

索引器错误:在python中列表分配索引超出范围,python,dictionary,Python,Dictionary,索引器错误:在python中列表分配索引超出范围 我做错了什么。我是个新手 actual_ans_dict = [] for data in prsnobj.result: actual_ans_dict[data[0]] = data[1] print actual_ans_dict 这是因为您的actual_ans_dict为空,这意味着它还没有任何索引 actual_ans_dict = [None]*max([data[0] for data in prsnobj.re

索引器错误:在python中列表分配索引超出范围 我做错了什么。我是个新手

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

这是因为您的
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]

actual_ans_dict
是一个空列表。您正试图将值设置为
actual\u ans\u 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