รายการใน python คือชุดของรายการที่คล้ายคลึงกัน บางครั้งเราอาจจำเป็นต้องเปรียบเทียบรายการข้อมูลในสองรายการเพื่อดำเนินการบางอย่าง เราจะพูดถึงวิธีการบางอย่างในการเปรียบเทียบสองรายการในหลาม
การใช้ตัวดำเนินการ list.sort() และ ==
list.sort() วิธีการเรียงลำดับสองรายการและตัวดำเนินการ ==เปรียบเทียบรายการสองรายการตามรายการซึ่งหมายความว่าพวกเขามีรายการข้อมูลที่เท่ากันในตำแหน่งที่เท่ากัน วิธีนี้จะตรวจสอบว่ารายการมีค่ารายการข้อมูลที่เท่ากันหรือไม่ แต่ไม่พิจารณาลำดับขององค์ประกอบในรายการ ซึ่งหมายความว่ารายการ [1,2,3] จะเท่ากับรายการ [2,1,3] ตามวิธีการเปรียบเทียบนี้
ตัวอย่าง
def compareList(l1,l2): l1.sort() l2.sort() if(l1==l2): return "Equal" else: return "Non equal" l1=[1,2,3] l2=[2,1,3] print("First comparison",compareList(l1,l2)) l3=[1,2,3] l4=[1,2,4] print("Second comparison",compareList(l3,l4))
ผลลัพธ์
First comparison Equal Second comparison Non equal
การใช้ collections.Counter()
วิธีนี้จะทดสอบความเท่าเทียมกันของรายการโดยเปรียบเทียบความถี่ของแต่ละองค์ประกอบในรายการแรกกับรายการที่สอง วิธีนี้ไม่คำนึงถึงลำดับขององค์ประกอบของรายการด้วย
ตัวอย่าง
import collections def compareList(l1,l2): if(collections.Counter(l1)==collections.Counter(l2)): return "Equal" else: return "Non equal" l1=[1,2,3] l2=[2,1,3] print("First comparison",compareList(l1,l2)) l3=[1,2,3] l4=[1,2,4] print("Second comparison",compareList(l3,l4))
ผลลัพธ์
First comparison Non equal Second comparison Equal
การใช้ sum() ,zip() และ len()
วิธีนี้จะเปรียบเทียบแต่ละองค์ประกอบของสองรายการก่อน และจัดเก็บองค์ประกอบเหล่านั้นเป็นผลรวมของ 1 จากนั้นจึงนำมาเปรียบเทียบกับความยาวของอีกรายการหนึ่ง สำหรับวิธีนี้ เราต้องตรวจสอบก่อนว่าความยาวของทั้งสองรายการเท่ากันก่อนทำการคำนวณนี้หรือไม่
วิธีนี้ยังตรวจสอบลำดับขององค์ประกอบ ซึ่งหมายความว่ารายการ [1,2,3] ไม่เท่ากับรายการ [2,1,3]
ตัวอย่าง
def compareList(l1,l2): if(len(l1)==len(l2) and len(l1)==sum([1 for i,j in zip(l1,l2) if i==j])): return "Equal" else: return "Non equal" l1=[1,2,3] l2=[2,1,3] print("First comparison",compareList(l1,l2)) l3=[1,2,3] l4=[1,2,3] print("Second comparison",compareList(l3,l4))
ผลลัพธ์
First comparison Non equal Second comparison Equal
ดังในตัวอย่างข้างต้น สำหรับการเปรียบเทียบครั้งแรก รายการข้อมูลในทั้งสองรายการมีค่าเท่ากัน แต่ลำดับขององค์ประกอบต่างกัน ดังนั้น การเปรียบเทียบครั้งแรกจึงคืนค่าไม่เท่ากัน
การใช้ ==โอเปอเรเตอร์
นี่คือการปรับเปลี่ยนวิธีแรก ในวิธีนี้ รายการจะถูกเปรียบเทียบโดยไม่มีการเรียงลำดับ ดังนั้น วิธีนี้จึงพิจารณาลำดับของรายการข้อมูลในรายการ
ตัวอย่าง
def compareList(l1,l2): if(l1==l2): return "Equal" else: return "Non equal" l1=[1,2,3] l2=[2,1,3] print("First comparison",compareList(l1,l2)) l3=[1,2,3] l4=[1,2,3] print("Second comparison",compareList(l3,l4))
ผลลัพธ์
First comparison Non equal Second comparison Equal
นี่คือวิธีการบางส่วนในการเปรียบเทียบรายการใน python ทั้งที่คำนึงถึงลำดับของรายการข้อมูลและโดยไม่คำนึงถึงลำดับของรายการข้อมูล