列表和整数的Python类型错误?

Tib*_*bit 1 python

我想阅读数字列表并按功能对它们进行排序,这是代码:

user_input = [int(i) for i in input().split(' ')]
for i in user_input:
    if i == user_input[0]: list2 = [[i]]

    for j in list2:
        if user_input[i] - j[-1] == 1:
            j.append(user_input[i])
        else:
            list2.append(user_input[i])
print(list2)

#############################################
>>> 8 7 1 9 2 6 3 5 4

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    if user_input[i] - j[-1] == 1:
TypeError: 'int' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了这个问题,知道这个问题是在调用带有下标的 int 对象时发生的,但是当我运行时print(type(user_input), type(j)),结果都是list. 我想知道为什么会发生错误。有人可以解释我吗:)

小智 5

在迭代它们的同时修改你的 list2 是一个坏主意。您的 list2 以列表列表开始,然后您开始向其中插入 int,这会导致问题...