python - 创建一个字谜检查器

标签 python function if-statement conditional-statements anagram

所以我已经能够创建以下程序来比较两个字符串以查看它们是否是彼此的字谜。

def anagrams( string1, string2 ):
    if sorted(string1.lower()) == sorted(string2.lower()):
        return True
    else:
        return False

但是,我的问题是,如果两个输入字符串完全相同,我不希望返回 True 值。例如:

anagrams('silent','silent')

这输出 True,但我不希望它这样做,我应该做哪些更改来实现它?

最佳答案

只需检查字符串是否不同:

def anagrams(string1, string2):
    if sorted(string1.lower()) == sorted(string2.lower()) and string1.lower() != string2.lower():
        return True
    else:
        return False

result = anagrams('silent', 'silent')
print(result)

输出

False

您可以使用Counter而不是排序:

from collections import Counter


def anagrams(string1, string2):
    if string1.lower() != string2.lower() and Counter(string1.lower()) == Counter(string2.lower()):
        return True
    else:
        return False

print(anagrams('silent', 'silent'))
print(anagrams('silent', 'sitlen'))

输出

False
True

更新

按照@RoadRunner的建议,你可以这样做:

from collections import Counter


def anagrams(string1, string2):
    ls1, ls2 = string1.lower(), string2.lower()
    return ls1 != ls2 and Counter(ls1) == Counter(ls2)

print(anagrams('silent', 'silent'))
print(anagrams('silent', 'sitlen'))

关于python - 创建一个字谜检查器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284771/

相关文章:

python - 在odoo treeview中隐藏一些行

python - 有没有办法在 Django 中重新加载后保留 html 复选框状态?

java - 如何通过传递数据从另一个 Activity 调用方法?

c - 将局部指针变量的地址返回给 main() 函数

javascript - 无法在页面中找到元素。检查元素显示与源页面不同的 HTML Python - Selenium

python - tweepy/twitter api 错误类型

arrays - 在 VBA 中,如何将字符串拆分为数组,然后将其作为参数传递给 Sub 或 Function

swift - 在 Swift 中按下按钮时创建一个 if 语句

java - 在if语句中创建对象并稍后使用它

bash - 一个简单的 'if' 语句