How to save changes in a dictionary in a loop? | Sololearn: Learn to code for FREE!

+3

How to save changes in a dictionary in a loop?

I added key and value to my dictionary in a loop but I want to save the changes but we don't have a method like append in dictionary. My code: for i in range(1): a = input() a = a.split() for i in range(len(a)-1): b = {a[i+1]:a[0]} print(b) ______ Now for example: Sample input: hi hola hao Sample output: {'hola':'hi','hao':'hi'} _____ But my output is: {'hao':'hi'} Is there any method which I can save it to dictionary?

10/14/2021 2:16:06 PM

Amirreza Hashemi

8 Answers

New Answer

+5

Your expectation can be written as : a = input().split() c =dict() for i in range(len(a)-1): c[a[i+1]]=a[0] print(c) Hope it helps..

+7

Amirreza Hashemi , i am not sure if it can help you, but you can use dict.update(...) to add a new key : value pair. here is a sample what you can do with it: https://code.sololearn.com/cQ0kf0HzeK36/?ref=app

+1

Jayakrishna🇮🇳 my expected output is: Writing a number first! It will be th number of inputs For example: 2 hi hola hel hey hello hiya Output: {'hola' : 'hi' , 'hel' : 'hi' , 'hello' : 'hey' , 'hiya' : 'hey' }

+1

Oh.. I did not checked code output.. You can run above correct working code in twice in a loop.. or define function with above working code and call twice or use like this with update() method : d={} for i in range(2): a = input().split() v=[] for i in a: v.append(i) c =dict() for i in range(len(v)-1): c[v[i+1]]=v[0] d.update(c) print(d) #i created global dictionary and added inner dictionary to global dictionary.

+1

Jayakrishna🇮🇳 thx now It really helped me!

+1

Lothar thank you I didn't know about it. Thanks for sharing good things

0

Jayakrishna🇮🇳 Thanks. Now what if we change the range? v=[] for i in range(2): a = input().split() for i in a: v.append(i) c =dict() for i in range(len(v)-1): c[v[i+1]]=v[0] print(c) _______ In this case for example Range 2: Sample input: Hi hello Hey hola hiya Output: {'hello':'Hi','hola':'Hey', 'hiya':'Hey'} Do you have any solution for that ?

0

The output is correct only... What is your expected output..? In previous code, you have only one iteration and so there is no need of loop so I removed it. If you want more than once, you can use loop..