Python 3.x 比较两个没有内置项的列表的值

Python 3.x 比较两个没有内置项的列表的值,python-3.x,list,loops,iteration,Python 3.x,List,Loops,Iteration,我正在尝试在没有任何内置函数的情况下生成和字谜检查器。到目前为止,我已经做到了: 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]

我正在尝试在没有任何内置函数的情况下生成和字谜检查器。到目前为止,我已经做到了:

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,您可以执行以下操作:

def isa1(s1、s2):
a=s1.下()
b=s2.下()
c=列表(a)
d=列表(b)
l=len(s1)
计数器=0
对于范围(l)中的i:
对于范围内的j(len(d)):
如果c[i]==d[j]:
德尔d[j]
计数器+=1
中断,继续下一个字母
如果计数器==len(s1):
返回真值
其他:
返回错误

此解决方案将对照第二个列表中的每个字母进行检查,如果找到匹配项,它将打破进入下一个字母的内部循环。

我假设您不想使用内置程序,因为您想更好地学习该语言。关于内置的事情是,它们只是核心python库中的函数。它们过去并不存在,但由于它是如此常用的代码,因此将它们添加到核心库是有益的。因此,如果您真的不想使用它们,那么您需要构建自己的助手函数。在这种情况下,我会说一个helper来替换
s.find()
。你可以通过一个单独的循环函数来实现这一点。你为什么反对使用内置函数呢?您知道
list()
len()
也是内置函数,对吗?检查两个列表是否为字谜的“简单”解决方案是
sorted(list1)==sorted(list2)
,因为
sorted()
也是一个内置函数,您将始终可以访问它,因此在适当的时候没有理由不使用它。不要认为内置函数是“快捷方式”——它们与语法和关键字一样是语言的一部分。