【问题标题】:Simple Code in Python, IndexError: list index out of rangePython中的简单代码,IndexError:列表索引超出范围
【发布时间】:2020-06-19 04:22:28
【问题描述】:

非常简单的代码,它可以工作。但第二行仍有IndexError: list index out of range。

(if arr[-1] < 0)

def up_array(arr):
    if arr[-1] < 0 :
        return None
    elif arr[-1] >= 10 :
        return None
    strng= ''.join(map(str,arr))
    strng=int(strng)+1
    new_arr = [int (x) for x in str(strng)]
    return new_arr

请你们帮帮我好吗?

【问题讨论】:

  • 会不会是你传递了一个空列表?在这种情况下,-1 的索引不存在。
  • 谢谢!我会试试的!

标签: python arraylist indexing


【解决方案1】:

IndexError 在您尝试访问不存在的数组中的位置时发生。由于您使用的是获得最后一项的[-1],因此获得IndexError 的唯一方法是传递一个空数组。解决此问题的一种方法是执行以下操作:

def up_array(arr):
    if arr==[]:
        print("EMPTY ARRAY")
        return None
    #Rest of your code....

【讨论】:

  • 谢谢!我会试试的!
  • 这假设 arr 总是一个列表;但不是很pythonic,通常我们希望函数与任何表现得像列表但不完全属于列表类型的对象一起工作(鸭子打字)。因此,更好的解决方案可能是查看 arr 的长度以检查它是否为空( if len(arr) == 0: ... )
  • 或者只是if not arr:
  • 我是通过放置一个空数组来做到的,谢谢大家!
猜你喜欢
  • 2019-01-06
  • 2016-08-25
  • 2017-04-05
  • 2012-07-15
  • 2013-06-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多