Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาสตริงอินพุตที่ตรงกันทั้งหมดจากรายการใน Python


สมมติว่าเราได้รับคำและเราต้องการค้นหาคำที่ใกล้เคียงที่สุด ไม่ใช่การจับคู่แบบตรงทั้งหมด แต่เป็นคำอื่นๆ ที่มีความคล้ายคลึงกันในรูปแบบใกล้เคียงกับคำที่กำหนด สำหรับสิ่งนี้ เราใช้โมดูลที่เรียกว่า difflib และใช้เมธอดชื่อ get_close_matches

get_close_matches

วิธีนี้เป็นส่วนหนึ่งของโมดูล difflib และให้การจับคู่กับรูปแบบที่เป็นไปได้ที่เราระบุ ด้านล่างนี้คือไวยากรณ์

difflib.get_close_matches(word, possibilities, n, cutoff)
word: It is the word to which we need to find the match.
Possibilities: This is the patterns which will be compared for matching.
n: Maximum number of close matches to return. Should be greater than 0.
Cutoff: The possibilities that do not score this float value between 0 and 1 are ignored.

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

ตัวอย่าง

ในตัวอย่างด้านล่าง เราจะใช้คำศัพท์และรายการความเป็นไปได้หรือรูปแบบที่ต้องเปรียบเทียบ จากนั้นเราก็ใช้วิธีเพื่อให้ได้ผลลัพธ์ที่ต้องการ

from difflib import get_close_matches

word = 'banana'
patterns = ['ana', 'nana', 'ban', 'ran','tan']

print('matched words:',get_close_matches(word, patterns))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

matched words: ['nana', 'ban', 'ana']