Search code examples
pythondictionarydefaultdict

how to get o/p as {"Chennai": ["Ram", "stephen"], "Mumbai": "Laxman"} for given i/p = {"Ram": "Chennai", "Laxman": "Mumbai", "stephen": "Chennai"}


I am trying to use defaultdict function here but that does not seem to work

s = {"Ram": "Chennai", "Laxman": "Mumbai", "stephen": "Chennai"} 
d = defaultdict(list)
for k, v in s:
    d[k].append(v)
sorted(d.items())
print(d)

Solution

  • this should work for you:

    from collections import defaultdict
    
    
    s = {"Ram": "Chennai", "Laxman": "Mumbai", "stephen": "Chennai"} 
    d = defaultdict(list)
    for k, v in s.items():
        d[v].append(k)
    
    sorted(d.items())
    print(d)
    

    Output:

    defaultdict(<class 'list'>, {'Chennai': ['Ram', 'stephen'], 'Mumbai': ['Laxman']})