How to compare two lists in Python
In comparing lists, we are checking the data items of a list against equality with data items of another list. In this article, we will discuss different ways to compare two lists.
Method 1: Using list comprehension
l1 = [1, 6, 2, 7] l2 = [7, 4, 1, 2, 3] #r is the list containing elements that are not present in both lists r = [i for i in l1 +l2 if i not in l1 or i not in l2] if (r): print("Lists are not equal") print(r) else: print("Lists are equal")
Output:
Lists are not equal [6, 4, 3]
Method 2: Using sort() method and == operator
In this method, we are sorting the lists first. If the two lists are equal, then the elements would reside at the same index positions. == operator compares element by element.
l1 = [1, 6, 2, 7] l2 = [7, 4, 1, 2, 3] l3 = [6, 2, 1, 7] l1.sort() l2.sort() l3.sort() if l1==l2: print("Lists l1 and l2 are equal") else: print("Lists l1 and l2 are not equal") if l1==l3: print("Lists l1 and l3 are equal") else: print("Lists l1 and l3 are not equal")
Output:
Lists l1 and l2 are not equal Lists l1 and l3 are equal
Method 3: Using collection.counter method
This method can be used to compare lists efficiently. The counter() function counts the frequency of the items in a list and stores the data as a dictionary in the format <value>:<frequency>. If two lists have the exact same dictionary output, we can assume that the lists are the same.
import collections l1 = [1, 6, 2, 7] l2 = [7, 4, 1, 2, 3] l3 = [6, 2, 1, 7] if collections.Counter(l1) == collections.Counter(l2): print("Lists l1 and l2 are equal") else: print("Lists l1 and l2 are not equal") if collections.Counter(l1) == collections.Counter(l3): print("Lists l1 and l3 are equal") else: print("Lists l1 and l3 are not equal")
Output:
Lists l1 and l2 are not equal Lists l1 and l3 are equal
Subscribe
Login
Please login to comment
0 Discussion