当前位置: 首页 > 后端技术 > Python

Python代码阅读(第十八篇):变形词判断

时间:2023-03-26 01:22:08 Python

Python代码阅读宝典介绍:为什么不建议Python初学者直接看项目源码?本文阅读的代码实现了判断两个字符串是否为词形变化的功能。本文阅读的代码片段来自30-seconds-of-python。is_anagramfromcollectionsimportCounterdefis_anagram(s1,s2):returnCounter(c.lower()forcins1ifc.isalnum())==Counter(c.lower()forcins2ifc.isalnum())#EXAMPLESis_anagram("#anagram","Nagaram!")#Trueis_anagram函数输入两个字符串并检查一个字符串是否是另一个字符串的变位词(不区分大小写,忽略空格、标点符号和特殊字符)。该函数依次判断输入字符串中的字符是字母还是数字,通过Counter生成一个字母数字的计数字典。通过比较从两个输入字符串创建的字典来确定它们是否是彼此的变体。当技术词典相同时,意味着两个输入串包含相同的字母或数字,并且它们的计数相同,并且两个输入串是互变词。classcollections.Counter([iterable-or-mapping])接受一个可迭代对象并返回一个dict子类用于计算可散列对象。它是一个集合,其中元素像字典键一样存储,它们的计数存储为值。count可以是任何整数值,包括0和负数。它接受一个可迭代对象并计算它的元素。如果字符串中的所有字符都是字母或数字并且至少有一个字符,则str.isalnum()返回True,否则返回False。str.lower()函数返回原始字符串的副本,其中所有区分大小写的字符都转换为小写。