Home > Article > Backend Development > Python program to calculate symmetric difference between two lists
In Python, you can use lists to save multiple items in a single variable. One of the four built-in data types in Python for storing collections of data is a list; the other three are tuples, sets, and dictionaries, each with a unique purpose.
Square brackets are used to build lists. The most powerful tools in Python are lists, since they are not necessarily homogeneous. Data types like integers, strings, and objects can all be found in a list. Since lists are mutable, they can be changed even after they are created.
The set of elements that are in LIST1 or LIST2 but not in both constitutes the symmetric difference between the two lists LIST1 and LIST2.
There are multiple ways to calculate the symmetric difference between two lists in python, we will take the most efficient way to find the same difference.
We have converted lists into sets and then done symmetric differences between these sets.
Create List
Convert list to set
Print the symmetric difference of the converted set
Print the symmetric difference of the list
In the following program, using "in" we can find the difference between two lists. The in keyword has two functions.
Determine whether a value exists in a string, list, tuple, range, etc.
Repeatedly traverse the list in a for loop.
L_1 = [11, 12, 13] L_2 = [12, 13, 42] L_3 = [3, 42, 5] # converting lists to set set_1 = set(L_1) set_2 = set(L_2) # now print the symmetric difference when # when the converted set is passed as a parameter print(set_1.symmetric_difference(set_2)) # now print the symmetric difference when list is # passed as a parameter by converting it to a set print(set_2.symmetric_difference(L_3))
{42, 11} {13, 3, 12, 5}
Here, we create two lists and then create an empty temporary variable. We then use a for loop to iterate over the numbers in the list. The If statement checks if the number is common and then appends the element to the first created temporary variable. Then print the list with different elements.
list_1 = [1, 35, 20, 25, 70, 35, 80] list_2 = [25, 80, 35] temp_3 = [] for element in list_1: if element not in list_2: temp_3.append(element) print(temp_3)
[1, 20, 70]
In this approach we explicitly convert the list to a set and then use the subtraction operator to remove only one from the other list. Go to Collections in Python to get other collection references. This is a similar strategy to the one we used before. The only difference is that list comprehension syntax is used instead of nested loops.
The following program is comparing two lists: list_1 and list_2. It creates a set from the second list and then uses it to filter out any values that appear in both lists. The result is a new filtered list (temp_3) containing only elements from list_1 that are not present in SET_1 (list_2).
list_1 = [13, 15, 22, 25, 30, 54, 40] list_2 = [54, 45, 30, 13] SET_1 = set(list_2) temp_3 = [x for x in list_1 if x not in SET_1] print(temp_3)
[15, 22, 25, 40]
In this method, elements are copied from two lists using basic combining techniques while periodically checking whether they exist in the other list.
In the following program - we define a function called Difference which accepts two lists as parameters. This function creates a new list list_dif containing items that are not present in both original lists. It then prints out this new list and the difference between the two original lists. In this example it prints [1, 12, 25, 22, 30, 20].
# this method helps to get difference of two lists # by not using set() def Difference(list1, list2): list_dif = [i for i in list_1 + list_2 if i not in list_1 or i not in list_2] return list_dif list_1 = [1, 12, 25, 22, 30, 65, 70] list_2 = [65, 20, 70] list_3 = Difference(list_1, list_2) print(list_3)
[1, 12, 25, 22, 30, 20]
Symmetrydifference ()The method returns the elements in the first or second group. Unlike shared elements of two collections, this method does not return an intersection.
list_1 = [23, 18, 45, 25, 40, 23, 40] list_2 = [23, 40, 35] set_difference = set(list_1).symmetric_difference(set(list_2)) temp_3 = list(set_difference) print(temp_3)
[35, 45, 18, 25]
In this article, we used four different methods to calculate the symmetric difference between two lists through python. Each method has some uniqueness and a different way of approaching the task.
The above is the detailed content of Python program to calculate symmetric difference between two lists. For more information, please follow other related articles on the PHP Chinese website!