+ 1

How to pass dictionary as an argument of function and how to access them in the function.

I tried doing this: def func(dict): If dict[a] == dict[b]: dict[c] = dict[a] return dict num = { "a": 1, "b": 2, "c": 2} print(func(**num)) But it gives in TypeError. Func got an unexpected argument a

6th Oct 2016, 11:27 PM
Rohit Kumar
5 Answers
+ 5
you are trying to print a dictionary, and that is why you are getting the error. you need to print only the part of the dict you want to see, or iterate through it and print each part individually. you can try this change the following return dict to return dict["c"] though I think dict is a keyword and might not be a smart choice for a variable name.. or try it this way my_dict = func(num) print(my_dict["c"]) this is because the function returns an entire dictionary, not just one element in it. also, its important to realize that your function changes the original dictionary, so there is no need to return anything at all. func(num) print(num["c"])
7th Oct 2016, 6:00 AM
Luke Armstrong
+ 1
def func(dict): if dict["a"] == dict["b"]: dict["c"] = dict["a"] return dict num = { "a": 1, "b": 2, "c": 3} print(func(num)) this code works. Double quotes were missing. Also python is case sensitive. so its 'if' , not 'If'
10th Oct 2016, 1:13 PM
Archana Murali
Archana Murali - avatar
0
pass a whole dict the same as any other variable. no need for the **
7th Oct 2016, 1:33 AM
Luke Armstrong
0
@Luke: First i tried 'print(func(num))'. It also had the same TypeError. So after searching the net, i found this: http://stackoverflow.com/a/21986301 Thats why i used **num, but still the TypeError msg continues.
7th Oct 2016, 4:54 AM
Rohit Kumar
0
try this. def myfnc(mydict={},**kwargs): for names,numbers in mydict: #write conditions you want to check for here # to use if statements you write if numbers>0: or whichever condition you want to write. # if you write if mydict[names]>0: it will give some errors # if you want to call the function, say myfnc(phonebook) # assuming phonebook is your dictionary
15th Oct 2016, 9:50 PM
Cheruiyot Denis
Cheruiyot Denis - avatar