unorderable类型:int()>名单()

时间:2018-03-26 17:41:34

标签: python

执行此代码后:

def arrayChange(inputArray):
    inputArray.append([10**6])
    sum = 0

    for i in range(len(inputArray)):
        while inputArray[i] > inputArray[i+1]:
            inputArray[i+1] += 1
            sum += 1

    return sum

我收到此错误:

Traceback (most recent call last):
  file.py3 on line ?, in getUserOutputs
    userOutput = _runickrl(testInputs[i])
  file.py3 on line ?, in _runickrl
    return arrayChange(*_fArgs_sxkojsugpnwr)
  file.py3 on line 6, in arrayChange
    while inputArray[i] > inputArray[i+1]:
TypeError: unorderable types: int() > list()

有谁知道为什么会这样?我尝试了所有我发现的东西。

1 个答案:

答案 0 :(得分:1)

当您执行inputArray.append([10**6])时,实际上是在inputArray列表中添加了一个列表。

您假设inputArray的每个元素都是整数,但是当您使用while inputArray[i] > inputArray[i+1]执行i=0时,第一个元素是一个列表,下一个元素是一个整数,所以它给出了你错误“unorderable types:int()> list()”。

如果您只想追加一个元素,那么您需要做的是inputArray.append(10**6)

如果您想要一次追加多个项目,那么您正在寻找的是:inputArray.extend([1, 2, 3])