Hi python ,
I am facing 1 issue with python related to append command in a list I am attaching PDB code for more understanding:- *I am having two classes :- * *class CITY:* * num = 0* * connectivity = []* *class CON:* * name = 0* * type = 0* (Pdb) p cities {1: <__main__.CITY instance at 0x7f9c00e03638>, 2: <__main__.CITY instance at 0x7f9c00e03680>, 3: <__main__.CITY instance at 0x7f9c00e03950>, 4: <__main__.CITY instance at 0x7f9c00e03998>, 5: <__main__.CITY instance at 0x7f9c00e039e0>} (Pdb) > /home/radhey/python/code.py(16)func() -> list = [] (Pdb) p data ['1', '2', '3'] * (Pdb) p cities[int(data[0])].connectivity ----------------**à Here cities name dictionary are having city class object and each object connectivity list is empty * *[]* *(Pdb) p cities[int(data[1])].connectivity* *[]* *(Pdb) p cities[int(data[2])].connectivity* *[]* (Pdb) p cities[int(data[3])].connectivity *** IndexError: IndexError('list index out of range',) (Pdb) n > /home/radhey/python/code.py(17)func() -> list = cities[int(data[0])].connectivity (Pdb) > /home/radhey/python/code.py(18)func() -> list.append(con) (Pdb) > /home/radhey/python/code.py(19)func() -> cities[int(data[0])].connectivity = [] (Pdb) > /home/radhey/python/code.py(20)func() -> *cities[int(data[0])].connectivity.extend(list) -------------**à Here I extended the connectivity list for cities[1] object * (Pdb) > /home/radhey/python/code.py(21)func() -> con1 = CON (Pdb) p cities[int(data[1])].connectivity --------à BUT All the *connectivity list got updated * [<class __main__.CON at 0x7f9bffc178d8>] (Pdb) p cities[int(data[0])].connectivity [<class __main__.CON at 0x7f9bffc178d8>] (Pdb) p int(data[1]) 2 (Pdb) p int(data[0]) 1 (Pdb) Code.py :- root@OcNOS:/home/radhey/python# cat code.py class CITY: num = 0 connectivity = [] class CON: name = 0 type = 0 def func(cities): input = raw_input() con = '' con1 = '' data = input.strip().split(' ') con = CON con.name = int(data[1]) con.type = int(data[2]) list = [] list = cities[int(data[0])].connectivity list.append(con) cities[int(data[0])].connectivity = [] cities[int(data[0])].connectivity.extend(list) con1 = CON con1.name = int(data[0]) con1.type = int(data[2]) list = [] list = cities[int(data[1])].connectivity list.append(con1) cities[int(data[1])].connectivity = [] cities[int(data[1])].connectivity.extend(list) input = raw_input() city = int(input.split(' ')[0]) roads = int(input.split(' ')[1]) cities = {} for c in range(1,city+1): city = CITY() city.num = c cities[c] = city print city,roads for r in range(1,roads+1): func(cities) print cities Input :- 5 7 1 2 3 2 3 3 3 4 3 5 3 2 5 4 1 5 2 2 1 5 1 Thanks ~Radhey -- . -- https://mail.python.org/mailman/listinfo/python-list