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

Python Helpers สำหรับคอมพิวเตอร์เดลต้า


ในการคำนวณเดลต้า เราควรใช้โมดูล difflib ของหลาม โมดูลนี้มีคลาสและฟังก์ชันที่แตกต่างกันเพื่อเปรียบเทียบลำดับ สามารถเปรียบเทียบไฟล์ ไฟล์ HTML ฯลฯ

ในการใช้โมดูลนี้ เราจำเป็นต้องนำเข้าโมดูล difflib ในโค้ดหลาม

import difflib

คลาสและฟังก์ชันบางอย่างของโมดูล difflib

คลาส (difflib.SequenceMatcher) -

คลาสนี้ใช้เพื่อเปรียบเทียบสองลำดับของประเภทใดก็ได้ มันมีวิธีการที่แตกต่างกัน วิธีการเหล่านี้บางส่วนมีลักษณะเช่นนี้ −

  • set_seqs(a, b) − ตั้งค่าไฟล์ลำดับที่จะเปรียบเทียบ มันคำนวณและแคชข้อมูลรายละเอียดเกี่ยวกับไฟล์ที่สอง ดังนั้นสำหรับการจับคู่หลายไฟล์ เราควรตั้งค่าลำดับแรกซ้ำๆ

  • set_seq1(ก) − ตั้งค่าลำดับแรกที่จะเปรียบเทียบ

  • set_seq2(2) − ตั้งค่าลำดับที่สองที่จะเปรียบเทียบ

  • find_longest_match(alo, ahi, blo, bhi) - ค้นหาบล็อกที่ตรงกันที่ยาวที่สุดในช่วง alo ถึง ahi สำหรับลำดับแรกและ blo to bhi สำหรับลำดับที่สอง

  • get_matching_blocks() − ค้นหารายการลำดับที่ตรงกันในลำดับจากมากไปน้อย

  • อัตราส่วน() − ค้นหาอัตราส่วนของความคล้ายคลึงของลำดับเป็นค่าทศนิยม

โค้ดตัวอย่าง

import difflib
myStr1 = 'Python Programming'
myStr2 = 'Python Standard Library'
seq_match = difflib.SequenceMatcher(lambda x: x==' ', myStr1, myStr2)
print("The ratio of the sequence matching is: " + str(round(seq_match.ratio(), 3)))
for match_block in seq_match.get_matching_blocks():
   print(match_block)

ผลลัพธ์

The ratio of the sequence matching is: 0.488
Match(a=0, b=0, size=7)
Match(a=8, b=13, size=1)
Match(a=11, b=19, size=2)
Match(a=18, b=23, size=0)