IndexError:在使用For循环时在Python3中列出超出范围的索引

我正在 python 中创建一个 for 循环。我的代码:

tc = int(input())
for tc_ct in range(tc):
    s = input().split()
    n = len(s)
    edited_s = s.copy()
    for i in range(n):
        i_1 = i+1
        if i == 0 and s[0] == s[i_1]:
                edited_s.pop(i)
        elif i == n-1:
            if s[i] == s[i-1]:
                edited_s.pop(i)
        else:
            if s[i] == s[i-1] or s[i] == s[i+1]:
                edited_s.pop(i)
    print("".join(edited_s))

但是,我收到以下错误:

Execution failed.
IndexError : list index out of range

Stack Trace:
Traceback (most recent call last):
    File "/tmp/146373551/user_code.py", line 8, in <module>
        if i == 0 and s[0] == s[i_1]:
IndexError: list index out of range

有人可以告诉我这是什么意思吗

回答

改变:

for i in range(n):

到:

for i in range(n-1):

这很重要,因为当您这样做时i_1 = i+1,当它到达列表中的最后一项时,它无法获得最后一项 + 1,因为没有这样的事情。这就是它抛出异常的原因。


以上是IndexError:在使用For循环时在Python3中列出超出范围的索引的全部内容。
THE END
分享
二维码

)">
< <上一篇
下一篇>>