Paul Thank you. In my case all "members" of a data structure are classes (except of the id). I showed the classes to highlight the requirement to access their methods as vs simple data types. I think dict of lists should work. Ideally , I hoped to access by name ( vs index), but list will do for now. Thank you.
On 15 Jun 2017 03:07, "Paul Barry" <paul.james.ba...@gmail.com> wrote: > Hi Andrew. > > You start by talking about a data structure, then show code that uses > "class". Not everything in Python needs to be in a class. > > I'd look at using a simple Dictionary of lists, indexed on your ID. A > list can contain anything, so you can add your objects in there dynamically > as needed. If you need to refer to the objects by name, use a dictionary > of dictionaries. > > Examples: > > # Dict of lists. > > >>> my_objects = {} > >>> my_objects['id1'] = [] > >>> my_objects > {'id1': []} > >>> my_objects['id2'] = [] > >>> my_objects > {'id1': [], 'id2': []} > >>> my_objects['id3'] = [] > >>> my_objects > {'id1': [], 'id2': [], 'id3': []} > >>> my_objects['id2'].append('some data, but could be anything') > >>> my_objects > {'id1': [], 'id2': ['some data, but could be anything'], 'id3': []} > >>> my_objects['id2'][0] > 'some data, but could be anything' > > # Dict of dicts. > > >>> my_objects2 = {} > >>> my_objects2['id1'] = {} > >>> my_objects2['id2'] = {} > >>> my_objects2['id3'] = {} > >>> my_objects2 > {'id1': {}, 'id2': {}, 'id3': {}} > >>> my_objects2['id2']['new_key'] = 'some data, but could be anything' > >>> my_objects2 > {'id1': {}, 'id2': {'new_key': 'some data, but could be anything'}, 'id3': > {}} > >>> my_objects2['id2']['new_key'] > 'some data, but could be anything' > > I think if you concentrate on manipulating your data as opposed to trying > to write code which manipulates it, you might be better off. > > I hope this helps. > > Regards. > > Paul. > > > > > > On 15 June 2017 at 02:36, Andrew Zyman <form...@gmail.com> wrote: > >> Hello, >> i wonder what would be a proper data structure for something with the >> following characteristics: >> >> id - number, >> obj[a..c] - objects of various classes >> >> the idea is to be able to update certain fields of these objects initially >> getting access to the record by ID >> >> something like this ( not working ) >> >> ### code start >> >> class ClassA(object): >> a = '' >> b = '' >> def __init__(self): >> a= 'aa' >> b= 'ab' >> >> class ClassB(object): >> def __init__(self): >> self.c = 'ba' >> self.d = 'bb' >> >> def main(): >> obja = ClassA >> objb = ClassB >> >> sets = set(obja, objb) >> contracts[1] = sets >> >> print('Sets ', contracts) >> >> # with the logic like ( not working too) >> if obja.a = 'aa': >> contracts[1].obja.a = 'ABC' >> >> >> if __name__ == '__main__': >> main() >> >> >> ### code end >> >> appreciate your guidance >> -- >> https://mail.python.org/mailman/listinfo/python-list >> > > > > -- > Paul Barry, t: @barrypj <https://twitter.com/barrypj> - w: > http://paulbarry.itcarlow.ie - e: paul.ba...@itcarlow.ie > Lecturer, Computer Networking: Institute of Technology, Carlow, Ireland. > -- https://mail.python.org/mailman/listinfo/python-list