problem with nested dictionaries

Jef Mangelschots jef.mangelschots at iname.com
Wed Oct 2 23:35:37 EDT 2002


Hi,

 in the below example, I want to create a dictionary of C2-objects.
Each C2-object has a member-dictionary of C1-objects.

In the sample code, I only insert values in the dictionary from object
'3'. 

However, when I print out the list, the objects which I inserted under
C2-object '3', appear to have been inserted in the other objects as
well.

What am I doing wrong (just started with python)

I am using Python 2.2


#<< begin snip

class C1:
    class_C1_name = ""
    def __init__(self, n):
        self.class_C1_name = n

class C2:
    class_C2_name = ""
    a_list     = {}
    def __init__(self, n):
        self.class_C2_name = n


C2_LIST = {}


C2_LIST['1'] = C2("C2_1")
C2_LIST['2'] = C2("C2_2")
C2_LIST['3'] = C2("C2_3")
C2_LIST['4'] = C2("C2_4")

C2_LIST['3'].a_list['5'] = C1("C1_5")
C2_LIST['3'].a_list['6'] = C1("C1_6")
C2_LIST['3'].a_list['7'] = C1("C1_7")


for c2_name in C2_LIST:
    print "name: " + c2_name
    for c1_name in C2_LIST[c2_name].a_list:
        print "  name: " + c1_name

# >> end snip

output:

name: 1
  name: 5
  name: 7
  name: 6
name: 3
  name: 5
  name: 7
  name: 6
name: 2
  name: 5
  name: 7
  name: 6
name: 4
  name: 5
  name: 7
  name: 6




More information about the Python-list mailing list