Python 判断两个字符串是否为字母异位词(anagram)

Document 对象参考手册 Python3 实例

字母异位词(anagram)是指由相同字母重新排列形成的不同单词或短语。例如,"listen" 和 "silent" 就是字母异位词。我们可以通过比较两个字符串的字母组成来判断它们是否为字母异位词。

实例

def is_anagram(str1, str2):
    # 去除空格并将字符串转换为小写
    str1 = str1.replace(" ", "").lower()
    str2 = str2.replace(" ", "").lower()

    # 如果两个字符串的长度不同,直接返回 False
    if len(str1) != len(str2):
        return False

    # 对两个字符串进行排序并比较
    return sorted(str1) == sorted(str2)

# 测试
print(is_anagram("listen", "silent"))  # True
print(is_anagram("apple", "pale"))     # False

代码解析:

  1. str1.replace(" ", "").lower()str2.replace(" ", "").lower():去除字符串中的空格并将其转换为小写,以确保比较时不区分大小写和空格。
  2. if len(str1) != len(str2)::如果两个字符串的长度不同,它们不可能是字母异位词,直接返回 False
  3. sorted(str1) == sorted(str2):对两个字符串进行排序,如果排序后的结果相同,则它们是字母异位词,返回 True,否则返回 False

输出结果:

True
False

Document 对象参考手册 Python3 实例