📜  使用 collections.Counter() 在Python中进行字谜检查

📅  最后修改于: 2022-05-13 01:54:28.519000             🧑  作者: Mango

使用 collections.Counter() 在Python中进行字谜检查

编写一个函数来检查两个给定的字符串是否是彼此的字谜。一个字符串的变位词是另一个包含相同字符的字符串,只是字符的顺序可以不同。例如,“abcd”和“dabc”是彼此的字谜。

例子:

Input : str1 = “abcd”, str2 = “dabc”
Output : True

Input : str1 = “abcf”, str2 = “kabc”
Output : False

此问题已有解决方案,请参考检查两个字符串是否相互链接。我们将在Python中使用 collections.Counter() 模块在一行中解决这个问题。

# Python code to check if two strings are
# anagram
from collections import Counter
  
def anagram(input1, input2):
  
    # Counter() returns a dictionary data
    # structure which contains characters 
    # of input as key and their frequencies
    # as it's corresponding value
    return Counter(input1) == Counter(input2)
  
# Driver function
if __name__ == "__main__":
    input1 = 'abcd'
    input2 = 'dcab'
    print anagram(input1, input2)

输出:

True

字典比较如何在Python中工作?
如果我们在Python dict1 = {'a':2,'b':3,'c':1} 和 dict2 = {'b':3,'c':1,'a' 中有两个字典数据结构: 2} 并且我们像dict1=dict2一样比较它们,那么它会得到True 。在Python普通字典数据结构中不遵循任何键的顺序,当我们比较两个字典时,它会比较三个键的顺序检查(如果它们不匹配,则字典不相等)键的名称(如果它们不匹配,它们不相等)每个键的值(它们也必须是'==')