Home  >  Article  >  Backend Development  >  Python program to calculate symmetric difference between two lists

Python program to calculate symmetric difference between two lists

WBOY
WBOYforward
2023-08-28 08:57:291441browse

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.

What is a list?

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.

Symmetric differences in lists

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.

algorithm

  • Create List

  • Convert list to set

  • Print the symmetric difference of the converted set

  • Print the symmetric difference of the list

Example

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))

Output

{42, 11}
{13, 3, 12, 5}

Example

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)

Output

[1, 20, 70]

Use list comprehension

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.

Example

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)

Output

[15, 22, 25, 40]

Do not use set()

In this method, elements are copied from two lists using basic combining techniques while periodically checking whether they exist in the other list.

Example

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)

Output

[1, 12, 25, 22, 30, 20]

Use symmetric difference

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.

Example

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)

Output

[35, 45, 18, 25]

in conclusion

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!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete