Python Program to find XOR of all the key value pairs in a Dictionary
Last Updated :
07 Mar, 2023
Given a dictionary in python, write a program to find the XOR of all the key-value pairs in the dictionary and return in the form of an array.
Note: All the keys and values in the dictionary are integers.
Examples:
Input : dic={1:3, 4:5, 6:7, 3 :8}
Output : [2, 1, 1, 11]
Explanation: XOR of all the key-value pairs in the dictionary are [1^3, 4^5, 6^7, 3^8]
Thus, [2, 1, 1, 11]
Note: Order may change as the dictionary is unordered.
Method 1:
- Start traversing the dictionary.
- Maintain an array for storing the XOR of each key-value pair.
- For each key in the dictionary, find key^value and append the value to the array.
- Finally, return the array.
Below is the implementation of the above approach
Python3
def xorOfDictionary(dic):
arr = []
for i in dic:
cur = i ^ dic[i]
arr.append(cur)
return arr
dic = { 5 : 8 , 10 : 9 , 11 : 12 , 1 : 14 }
print (xorOfDictionary(dic))
|
Time complexity: O(n)
Auxiliary space : O(n) for storing XOR values.
Method 2:Using items() function
Python3
def xorOfDictionary(dic):
arr = []
for key, value in dic.items():
cur = key ^ value
arr.append(cur)
return arr
dic = { 5 : 8 , 10 : 9 , 11 : 12 , 1 : 14 }
print (xorOfDictionary(dic))
|
Time complexity: where n is the number of items in the dictionary, because it has to traverse the dictionary once to calculate the XOR of each key-value pair.
Auxiliary space: O(n), because it needs to store all the XOR values in an array.
Method #3 : Using keys() and values() methods
Python3
dic = { 5 : 8 , 10 : 9 , 11 : 12 , 1 : 14 }
arr = []
x = list (dic.keys())
y = list (dic.values())
for i in range ( 0 , len (x)):
arr.append(x[i]^y[i])
print (arr)
|
Time complexity: O(n)
Auxiliary space: O(n) for storing XOR values.
Method 4: Using a list comprehension
Python3
def xorOfDictionary(dic):
return [i ^ dic[i] for i in dic]
dic = { 5 : 8 , 10 : 9 , 11 : 12 , 1 : 14 }
print (xorOfDictionary(dic))
|
Time complexity: O(n)
Auxiliary space: O(n)
Method 5:Using the map() function and a lambda function
- Traverse the dictionary using the .items() method.
- For each key-value pair, apply the lambda function, which takes the XOR of the key and value.
- The result of each XOR operation is stored in a list using the map() function.
- Return the list of XOR values.
Code uses the map() function with a lambda function to perform the XOR operation on each key-value pair in the dictionary and store the result in a list.
Python3
dict = { 5 : 8 , 10 : 9 , 11 : 12 , 1 : 14 }
xor_res = list ( map ( lambda kv: kv[ 0 ] ^ kv[ 1 ], dict .items()))
print (xor_res)
|
The items() method is used by the map() function to extract the key-value pairs for each item in the dictionary. The list() method is used to turn iterable that the map() function returns into a list. The list of XOR results is printed last.
Time complexity: O(N) as the map() function and the lambda function are both applied to each key-value pair once, which takes O(1) time and there are a total of N key-value pairs. So time complexity is O(N).
Auxiliary space: O(n) as the list is of the same size as the number of key-value pairs in the dictionary. Therefore, the space complexity is O(N).
Share your thoughts in the comments
Please Login to comment...