比较没有内置功能的2个列表的值

问题描述

我试图在没有任何内置功能的情况下进行anagram checker。到目前为止,我已经做到了:

def isa1(s1,s2):
    a = s1.lower()
    b = s2.lower()
    c = list(a)
    d = list(b)
    l = len(s1)
    counter = 0
    for i in range(l):
        
        if c[i] == d[0]:
            del d[0]
            counter += 1
        elif c[i] == d[1]:
            del d[1]
            counter += 1
        elif c[i] == d[2]:
            del d[2]
            counter += 1
        elif c[i] == d[3]:
            del d[3]
            counter += 1
        elif c[i] == d[4]:
            del d[4]
            counter += 1
        elif c[i] == d[5]:
            del d[5]
            counter += 1
        else:
            pass
    if counter == len(s1):
        return True
    else:
        return False

我对开始感到满意,禁止分配命名,但是我想不出如何遍历第二个字符串s2而不会使for循环变得可笑。另外,此代码仅适用于长度为6个字符的字符串/列表。

对不起,如果这看起来很简单,我只是在开始Python和一般编程 谢谢!

解决方法

如果可以在for中使用for,可以这样做:

?type=downvote

此解决方案将检查第二个列表中的每个字母,如果找到匹配项,则会中断进入下一个字母的内循环。