【问题标题】:IndexError: list assignment index out of range in pythonIndexError:python中的列表分配索引超出范围
【发布时间】:2013-12-04 18:06:05
【问题描述】:

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

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

【问题讨论】:

  • 将列表称为字典有什么意义?
  • [] 用于列表,{} 用于字典

标签: python dictionary


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 2014-10-13
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      相关资源
      最近更新 更多