Thursday, September 12, 2024
Google search engine
HomeLanguagesPython set symmetric_difference_update()

Python set symmetric_difference_update()

The symmetric difference between the two sets is the set of elements that are in either of the sets but not in both of them.
 

symmetric-difference-update() in Python

Symmetric Difference is marked in Green

symmetric_difference() method returns a new set that contains a symmetric difference of two sets. The symmetric_difference_update() method updates the set by calling symmetric_difference_update() with the symmetric difference of sets.

Python set symmetric_difference_update() Syntax

Syntax:  A.symmetric_difference_update(B) 
Parameters: 
The symmetric_difference takes a single “iterable” as an argument. Iterable should contain hashable object.
Returns: 
This method returns None (which indicates absence of a return value). It only updates the set calling symmetric_difference_update() with the symmetric difference of sets.

Python set symmetric_difference_update() Examples

Modifying Sets With Non-Duplicated Elements with Set symmetric_difference_update()

Here A.symmetric_difference_update(B), the elements that are common between set A and set B are removed from A, and only the elements that are unique to each set are kept in A. 

Python3




# Python code to demonstrate working of
# symmetric_difference_update()
 
A = {'p', 'a', 'w', 'a', 'n'}
B = {'r', 'a', 'o', 'n', 'e'}
 
# result is always none.
result = A.symmetric_difference_update(B)
 
print('A = ', A)
print('B = ', B)
print('result = ', result)


Output

('A = ', set(['e', 'o', 'p', 'r', 'w']))
('B = ', set(['a', 'r', 'e', 'o', 'n']))
('result = ', None)

Handling Duplicated Elements with Set symmetric_difference_update()

A.symmetric_difference_update(B), the elements that are present in either set A or set B but not in both will be kept in set A. In this case, the resulting set A will contain elements ‘s’ and ‘b’, which are the elements present in either A or B but not in both. Set B remains unchanged.

Python3




# Python code to demonstrate working of
# symmetric_difference_update()
 
A = {'s', 'u', 'n', 'n', 'y'}
B = {'b', 'u', 'n', 'n', 'y'}
 
# result is always none.
result = A.symmetric_difference_update(B)
 
print('A = ', A)
print('B = ', B)
print('result = ', result)


Output : 

('A = ', set(['s', 'b']))
('B = ', set(['y', 'b', 'u', 'n']))
('result = ', None)

Updating Sets with Symmetric Differences in Python

The symmetric_difference_update() method updates the set A by keeping only the elements that are in either A or B, but not in both. In the first example, the list B contains the elements 4, 5, 7, and 8. These elements are not in A, so they are added to A. Elements 1, 2, and 3 are in both A and B, so they are removed from A.

In the second example, the generator object B generates the numbers from 2 to 5. These numbers are not in A, so they are added to A. Elements 4 and 6 are in both A and B, so they are removed from A.

Python3




# Python code to demonstrate working of
# symmetric_difference_update()
 
A = {1, 2, 3, 4, 5, 6}
B = [4, 5, 7, 8]
 
# passing argument as list
 
A.symmetric_difference_update(B)
print("A =", A)
 
A = {2, 4, 6, 8}
B = (i for i in range(2, 6))
 
# passing argument as generator object
 
A.symmetric_difference_update(B)
print("A=", A)


Output

('A =', set([1, 2, 3, 6, 7, 8]))
('A=', set([3, 5, 6, 8]))

Set Symmetric_difference_update() with Handling Unhashable Objects

The Code will raise an error because the symmetric_difference_update() method cannot take a list that contains unhashable objects as an argument. List B contains the element [1, 2, 3], which is a list, and lists are not hashable objects.

Python3




# Python code to demonstrate working of
# symmetric_difference_update()
 
A = {1, 2, 3, 4, 5}
B = [[1, 2, 3], 4, 5]
 
# error as b contain one element as list(unhashable object)
 
A.symmetric_difference_update(B)
print("A =", A)


Output

Traceback (most recent call last):
File "/home/1b4e24cadc3fabcd5f90141964a60e9b.py", line 9, in <module>
A.symmetric_difference_update(B)
TypeError: unhashable type: 'list'

RELATED ARTICLES

Most Popular

Recent Comments