Mohammed Ismail Mohammed Ismail - 24 days ago 9
Python Question

Merge three dictionaries in Python

I am trying to merge three dictionaries together.

I am receiving an

unsupported operand types
error.

Here is my code:

def add_student():
global Snumber
global iCode
global kCode
Snumber = Student_number.get()
Sname = Student_name.get()
Ssurnname = Student_surname.get()
Sdetail = Student_detail.get()
i = Students(Snumber,Sname,Ssurnname,Sdetail)
Sinfo[Snumber]=[Sname,Ssurnname,Sdetail]

iName = Student_subject.get()
iCode = Student_code.get()
iMark1 = Student_Mark1.get()
iMark2 = Student_Mark2.get()
iMark3 = Student_Mark3.get()
iProject = Student_project.get()
j = Subjects(iName,iCode,iMark1,iMark2,iMark3,iProject)
SSubject[iCode]=[iName,iMark1,iMark2,iMark3,iProject]

kCourse = Degree_course.get()
kCode = Degree_code.get()
kYear = Degree_year.get()
v = Degrees(kCourse,kCode,kYear)
SDegree[kCode]=[kCourse,kYear]

popup_add()
student_list = (Sinfo.items() + SSubject.items() + SDegree.items())
print(student_list)


I believe my problem is in:

student_list = (Sinfo.items() + SSubject.items() + SDegree.items())
print(student_list)

Answer

you can use dict.update()

>>> a = {1:1,2:2,3:3}
>>> a
{1: 1, 2: 2, 3: 3}
>>> b = {4:4,5:5}
>>> c = {6:6,7:7}
>>> a.update(b)
>>> a.update(c)
>>> a
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7}

if you dont want to modify the original you can use the following to copy it into a new variable

>>> new_dict = dict(a)
Comments