Python 代碼閱讀合集介紹:為什么不推薦Python初學者直接看專案原始碼
本篇閱讀的代碼實作了判斷兩個字串是否互為變形詞的功能,
本篇閱讀的代碼片段來自于30-seconds-of-python,
is_anagram
from collections import Counter
def is_anagram(s1, s2):
return Counter(
c.lower() for c in s1 if c.isalnum()
) == Counter(
c.lower() for c in s2 if c.isalnum()
)
# EXAMPLES
is_anagram("#anagram", "Nag a ram!") # True
is_anagram函式輸入兩個字串,檢查一個字串是否是另一個字串的變形詞(不區分大小寫,忽略空格、標點符號和特殊字符),函式依次判斷輸入字串中的字符是否是字母或數字,并通過Counter生成字母和數字的計數字典,通過比較根據兩個輸入字串創建的字典,判斷他們是否互為變體,當技術字典相同時,表示兩個輸入字串包含相同的字母或數字,并且他們的計數相同,兩個輸入字串互為變形詞,
class collections.Counter([iterable-or-mapping])接收一個可迭代物件,并回傳一個dict的子類,用于計數可哈希物件,它是一個集合,元素像字典鍵(key)一樣存盤,它們的計數存盤為值,計數可以是任何整數值,包括0和負數,它可以接收一個可迭代物件,并對其元素進行計數,
str.isalnum()如果字串中的所有字符都是字母或數字且至少有一個字符,則回傳True, 否則回傳False,
str.lower()函式回傳原字串的副本,其所有區分大小寫的字符均轉換為小寫,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325244.html
標籤:Python
