使用 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普通字典数据结构中不遵循任何键的顺序,当我们比较两个字典时,它会比较三个键的顺序检查(如果它们不匹配,则字典不相等) ,键的名称(如果它们不匹配,它们不相等)和每个键的值(它们也必须是'==') 。