Python 我想写一个函数,它接受两个字符串,如果它们是字谜(任何具有不同顺序的相同字母的单词),则返回True

Python 我想写一个函数,它接受两个字符串,如果它们是字谜(任何具有不同顺序的相同字母的单词),则返回True,python,Python,我已经试过了,我想让程序将S1中的每个字母与S2中的每个字母进行比较,有什么想法吗 s1= "Army" s2= "Mary" def anagram(S1,S2): q=0 w=0 S1.lower() S2.lower() for i in S1: if S1[q]==S2[w]: print S1[q] else: q+=1 w+=1 anagr

我已经试过了,我想让程序将S1中的每个字母与S2中的每个字母进行比较,有什么想法吗

s1= "Army"
s2= "Mary"
def anagram(S1,S2):
    q=0
    w=0
    S1.lower()
    S2.lower()
    for i in S1:
        if S1[q]==S2[w]:
            print S1[q]
        else:
            q+=1
            w+=1

anagram(s1,s2)
考虑使用:


试试看

“有什么想法吗?”不是一个好问题。你的代码有问题吗?然后说出来。如果没有,那么就不要发布。关于StackOverflow,有几个问题是关于如何比较两个字符串并找出它们是否是字谜。你先看了吗?你也明白为什么你的代码没有按预期工作吗?@Riko我没有攻击性,我只是告诉你什么是可以接受的。如果你愿意的话,我可以闭嘴,让你发布一些糟糕的问题,这些问题会一直被否决……:)简单的方法:对2个字符串进行排序,并进行比较-如果它们是字谜,它们将等于def字谜(s1,s2):返回“”。连接(排序(s1.lower())=''。连接(排序(s2.lower()))可以做的是检查长度,然后查看并对所有字母进行索引,这样就可以了。
import collections

s1 = "Army"
s2 = "Mary"
s3 = "Zary"

def anagram(s1,s2):
  return collections.Counter(s1.lower()) == collections.Counter(s2.lower())

print anagram(s1,s2) # True
print anagram(s1, s3) # False