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()
也是一个内置函数,您将始终可以访问它,因此在适当的时候没有理由不使用它。不要认为内置函数是“快捷方式”——它们与语法和关键字一样是语言的一部分。