【问题标题】:Python index out of range errorPython索引超出范围错误
【发布时间】:2015-11-01 09:30:27
【问题描述】:

不知道为什么我的索引超出范围错误。

函数应该循环 ip 列表直到事件值结束:

event = ["Birthday-venues", "baby-shower", "wedding", "corp", "party"]
ip = [1, 2, 3]

lip = len(ip)
levent = len(event)


def eventIP():
    i = 0
    dict = {}
    while i < levent:
        for j in range(0, lip):
            dict[event[i]] = ip[j]
            if i < levent:
                i += 1
            else:
                break

    print(dict)

eventIP()

错误:

Traceback (most recent call last):
  File "script.py", line 21, in <module>
    eventIP()
  File "script.py", line 13, in eventIP
    dict[event[i]] = ip[j]
IndexError: list index out of range

【问题讨论】:

  • 您希望这实际上会做什么?
  • 崩溃时i和j的值是多少?
  • levent = len(event)-1 怎么样?如果你这样做,那么输出将是{'Birthday-venues': 1, 'party': 2, 'baby-shower': 2, 'corp': 1, 'wedding': 3}
  • 看起来您正在尝试创建像 {'Birthday-venues':1, 'Birthday-venues':2, 'Birthday-venues':3, 'baby-shower':1...} 这样的字典。是这样吗?
  • 不完全是,但我能够找到错误的解决方案,感谢您的帮助:)

标签: python loops debugging indexing


【解决方案1】:

它崩溃是因为您在更新之前测试 i 是否小于 levent。请尝试以下操作:

    i += 1
    if i >= levent:
        break

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多