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

จะเปรียบเทียบสองรายการใน Python ได้อย่างไร


รายการใน 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 ทั้งที่คำนึงถึงลำดับของรายการข้อมูลและโดยไม่คำนึงถึงลำดับของรายการข้อมูล