IndexError: list index out of range: idk where

IndexError: list index out of range: idk where

尽管编译成功,但我收到错误:IndexError: list index out of range

该函数将一个序列和 returns 一个项目列表作为参数,其中没有任何相邻的具有相同值的元素,并保留元素的原始顺序。 我写的代码:

def fnc(l, a):
   print(l)
   if l[a] == l[a+1]:
      del l[a]
      return fnc(l, 0)
   elif l[a] != l[a+1]:
      return fnc(l, a+1)
   elif a == len(l):
      return l

def unique_in_order(txt):
   list = []
   for i in txt:
      list  += [i]
   return fnc(list, 0)

感谢帮助

您不需要为了递归而做任何花哨的事情,比如使用递归。 Python 以提供多种解决问题的方法而著称,但优秀的程序员以编写简单的代码以便每个人都能理解而著称。

现在来解决你的问题。您只需要检查下一个单词是否相同,如果不相同则存储当前单词。


input_string = 'AAAABBBCCDAABBB'

# return string without next duplicates and in order

output_list = []
for char in range(len(input_string)):
    if char == len(input_string)-1:
        output_list.append(input_string[char])
    else:
        if input_string[char] != input_string[char+1]:
            output_list.append(input_string[char])

output_string = ''.join(output_list)
print(output_string)
#ABCDAB