3 回答

TA貢獻1784條經驗 獲得超2個贊
這是一個正則表達式解決方案:
import re
bad_letters = "AKS"
word = "Sanctuary"
if re.search(f"[{bad_letters}]", word, re.IGNORECASE):
print("It is a match")
據(jù)稱,這可能比避免使用正則表達式要慢。在這個例子中,這確實是正確的,但只是相當輕微。
$ python3 -mtimeit -s 'bad_letters = "AKSaks"; word = "Sanctuary"' 'any(char in word for char in bad_letters)'
1000000 loops, best of 3: 0.468 usec per loop
$ python3 -mtimeit -s 'bad_letters = "AKS"; word = "Sanctuary"; import re' 're.search(f"[{bad_letters}]", word, re.IGNORECASE)'
1000000 loops, best of 3: 0.622 usec per loop
事實上,測量的某些時間是'[AKS]'從壞字符構造模式'AKS'并編譯正則表達式。如果將其從計時測量中剔除,那么預編譯的正則表達式將輕松獲勝。
$ python3 -mtimeit -s 'import re; bad_letters = "AKS"; matcher=re.compile(f"[{bad_letters}]", re.IGNORECASE).search; word = "Sanctuary"' 'matcher(word)'
10000000 loops, best of 3: 0.167 usec per loop

TA貢獻1829條經驗 獲得超7個贊
我相信您想檢查一個字符串中的錯誤字母,因此您可以執(zhí)行以下操作:
word = "hello"
string = "EH"
for letter in string:
if letter.lower() in word.lower():
print('success')
else:
print('failure')

TA貢獻1831條經驗 獲得超9個贊
如果您還想知道哪個字母匹配:
bad_letters="AKS".lower()
word="Sanctuary".lower()
for blet in bad_letters:
for let in word:
if blet==let:
print("It is a match:",let)
break
添加回答
舉報