- 2
Swapping keys and dictionaries without loosing the data in python
Geethika
6 Respuestas
+ 3
Do you mean "swapping keys and values in dictionary"?
If that is the case, then you can use for loop and iterate each key and value pair using dict.items() method which will return a tuple pair of key and value.
dict.items() --> (key, value)
Then create a different variable to store the new dictionary wherein the value and key are swapped.
_______________________
data = {1: "one", 2: "two"}
new_data = { }
for key, value in data.items():
new_data[value] = key
_______________________
Or use list comprehension-like for loop.
________________________
data = {1: "one", 2: "two"}
new_data = {val: key for key, val in data.items()}
________________________
If this is not what you are asking for, please let me know. Thanks.
+ 3
Just a little adjustment, this one checks first if a value is already a key in new_d, if not create one with an empty list as its predetermined value, then append the key of data as an element of its list value.
d = {"Apple":"fruit", "orange":"fruit", "lilly":"flower", "rose":"flower"}
new_d = { }
for key, value in d.items():
if value not in new_d:
new_d[value] = [ ]
new_d[value].append(key)
Still not sure if this is what you are looking for, so again please let me know if this is not. Thanks.
+ 1
My question is not to loose the duplicate data for example:#Swap the dict keys and values but should not miss the data
d = {"Apple":"fruit","orange":"fruit","lilly":"flower","rose":"flower"}
#output: {'fruit': ['orange'], 'flower': ['rose']}
and another output should be in
#output: {'fruit': ['orange','Apple'], 'flower': ['rose',"rose"]}
+ 1
This is what i looking for tq
+ 1
Can u explain once
0
542-geethika kodidela
[ 1 ]
First, the for loop iterates the key and value by unpacking the d.items() key-value pair.
d.items() --> [("Apple", "fruit"), ("orange", "fruit"), ("lilly", "flower"), ("rose", "flower")]
And in the for loop we used two variables separated by comma.
🔹 for key, value in d.items():
Inside the for loop, on the first pair for example, the `key` represents "Apple" and `value` represents "fruit".
It is an easy way to iterate each key and value (pair) of a dictionary at the same time.
[ 2 ]
Since we are using the value as key and key as value (i.e. swapping), we check first if `value` is already a key in `new_d` dictionary, if not yet, then we need to add that `value` as key and add an empty list so we can append elements to it afterwards.
Then at the 3rd line of the for loop, it adds the `key` to the list of the value of the `value` key in new_d. As a result, whichever key in `d` have the same value will be in the same list holded by that same value.