首页 > 解决方案 > python数组索引未定义

问题描述

我无法理解以下代码:

def lengthOfLongestSubstring(s):
    mylist = []
    maxlist = []
    for y in s:
        #here s is copied to mylist
        mylist.append(y)
        if y[i] == y[i+1]:
            if mylist > maxlist:
                maxlist = mylist
                mylist = ''
            continue
    return maxlist

打印(lengthOfLongestSubstring('abcaabc'))

我收到一个错误“名称'i'未定义” -我不明白这一点,因为 i 只是字符串 y 的索引。任何帮助,将不胜感激。谢谢你。

标签: pythonarrays

解决方案


程序只需按照您的指示进行,并且您的指示必须清楚。

您没有在代码中定义 i 是什么。Python 不知道 i 是什么,它取值为 0 吗?它取值为 1 吗?它应该在访问 y 的每个字符之前停止吗?

我怀疑您可能希望在当前 for 循环中包含另一个循环(以 y 作为迭代变量)来遍历字符串 y。

此外,另一个潜在问题:

  • 我注意到您正在比较两个列表。mylist 和 maxlist。您必须考虑一个列表比另一个列表大是什么意思?如果您想要包含更多元素的列表,可以将 len(mylist) 与 len(maxlist) 进行比较。

推荐阅读