如何在Python中检查2个字符串是否包含相同的字母和数字?

use*_*897 2 python string string-comparison

我想检查两个字符串是否包含相同的字母和数字

忽略特殊字符,例如_

例子:

word1 = "ABCD" , word2 = "ACDB"  => return True
word1 = "ABC1E_" , word2 = "AE1CB" => return True
word1 = "AB12" , word2 = "ABE2" => return False
word1 = "ABB" , word2 = "AB" => return True 
Run Code Online (Sandbox Code Playgroud)

mir*_*ulo 5

假设您想要考虑每个字符串中的每个字母数字字符都是相同的(而不仅仅是字符集),您可以Counter在过滤字符后比较 s 。

from collections import Counter
res = Counter(filter(str.isalnum, word1)) == Counter(filter(str.isalnum, word2))
Run Code Online (Sandbox Code Playgroud)

如果您只想比较字符集(“AAB”和“AB”将返回 true),您可以使用类似的方法set

res = set(filter(str.isalnum, word1)) == set(filter(str.isalnum, word2))
Run Code Online (Sandbox Code Playgroud)