Re: How to enter multiple, similar, dictionaries?
On 11/12/2023 16.16, Chris Green wrote: Is there a way to abbreviate the following code somehow? lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} It's effectively a 'table' with columns named 'dev', 'input' and 'name' and I want to access the values of the table using the variable name. I could, obviously, store the data in a database (sqlite), I have some similar data in a database already but the above sort of format in Python source is more human readable and accessible. I'm just looking for a less laborious way of entering it really. Maybe a dict of dicts: tx = {lv: {'dev':'bbb', 'input':'1', 'name':'Leisure volts'}, sv: {'dev':'bbb', 'input':'0', 'name':'Starter volts'}, ...} Might have one or two advantages. bye, -- piergiorgio -- https://mail.python.org/mailman/listinfo/python-list
Re: How to enter multiple, similar, dictionaries?
Jon Ribbens wrote: > On 2023-12-11, Chris Green wrote: > > Chris Green wrote: > >> Is there a way to abbreviate the following code somehow? > >> > >> lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} > >> sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} > >> la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} > >> sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} > >> bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} > >> > >> It's effectively a 'table' with columns named 'dev', 'input' and > >> 'name' and I want to access the values of the table using the variable > >> name. > >> > > Or, more sensibly, make the above into a list (or maybe dictionary) > > of dictionaries:- > > > > adccfg = [ > > {'abbr':'lv', 'dev':'bbb', 'input':'1', 'name':'Leisure volts'}, > > {'abbr':'sv', 'dev':'bbb', 'input':'0', 'name':'Starter volts'}, > > {'abbr':'la', 'dev':'bbb', 'input':'2', 'name':'Leisure Amps'}, > > {'abbr':'sa', 'dev':'bbb', 'input':'3', 'name':'Starter Amps'}, > > {'abbr':'bv', 'dev':'adc2', 'input':0, 'name':'BowProp Volts'} > > ] > > > > This pickles nicely, I just want an easy way to enter the data! > > adccfg = [ > dict(zip(('abbr', 'dev', 'input', 'name'), row)) > for row in ( > ('lv', 'bbb', '1', 'Leisure volts'), > ('sv', 'bbb', '0', 'Starter volts'), > ('la', 'bbb', '2', 'Leisure Amps'), > ('sa', 'bbb', '3', 'Starter Amps'), > ('bv', 'adc2', 0, 'BowProp Volts'), > ) > ] Neat, I like that, thank you. -- Chris Green · -- https://mail.python.org/mailman/listinfo/python-list
Re: How to enter multiple, similar, dictionaries?
On 2023-12-11, Chris Green wrote: > Chris Green wrote: >> Is there a way to abbreviate the following code somehow? >> >> lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} >> sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} >> la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} >> sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} >> bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} >> >> It's effectively a 'table' with columns named 'dev', 'input' and >> 'name' and I want to access the values of the table using the variable >> name. >> > Or, more sensibly, make the above into a list (or maybe dictionary) > of dictionaries:- > > adccfg = [ > {'abbr':'lv', 'dev':'bbb', 'input':'1', 'name':'Leisure volts'}, > {'abbr':'sv', 'dev':'bbb', 'input':'0', 'name':'Starter volts'}, > {'abbr':'la', 'dev':'bbb', 'input':'2', 'name':'Leisure Amps'}, > {'abbr':'sa', 'dev':'bbb', 'input':'3', 'name':'Starter Amps'}, > {'abbr':'bv', 'dev':'adc2', 'input':0, 'name':'BowProp Volts'} > ] > > This pickles nicely, I just want an easy way to enter the data! adccfg = [ dict(zip(('abbr', 'dev', 'input', 'name'), row)) for row in ( ('lv', 'bbb', '1', 'Leisure volts'), ('sv', 'bbb', '0', 'Starter volts'), ('la', 'bbb', '2', 'Leisure Amps'), ('sa', 'bbb', '3', 'Starter Amps'), ('bv', 'adc2', 0, 'BowProp Volts'), ) ] -- https://mail.python.org/mailman/listinfo/python-list
Re: How to enter multiple, similar, dictionaries?
On 2023-12-11 15:57, Chris Green via Python-list wrote: Chris Green wrote: Is there a way to abbreviate the following code somehow? lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} It's effectively a 'table' with columns named 'dev', 'input' and 'name' and I want to access the values of the table using the variable name. Or, more sensibly, make the above into a list (or maybe dictionary) of dictionaries:- adccfg = [ {'abbr':'lv', 'dev':'bbb', 'input':'1', 'name':'Leisure volts'}, {'abbr':'sv', 'dev':'bbb', 'input':'0', 'name':'Starter volts'}, {'abbr':'la', 'dev':'bbb', 'input':'2', 'name':'Leisure Amps'}, {'abbr':'sa', 'dev':'bbb', 'input':'3', 'name':'Starter Amps'}, {'abbr':'bv', 'dev':'adc2', 'input':0, 'name':'BowProp Volts'} ] This pickles nicely, I just want an easy way to enter the data! I could, obviously, store the data in a database (sqlite), I have some similar data in a database already but the above sort of format in Python source is more human readable and accessible. I'm just looking for a less laborious way of entering it really. How about: keys = ['abbr', 'dev', 'input', 'name'] adccfg = [ ('lv', 'bbb', '1', 'Leisure volts'), ('sv', 'bbb', '0', 'Starter volts'), ('la', 'bbb', '2', 'Leisure Amps'), ('sa', 'bbb', '3', 'Starter Amps'), ('bv', 'adc2', '0', 'BowProp Volts'), ] adccfg = [dict(zip(keys, row)) for row in adccfg] or even: keys = ['abbr', 'dev', 'input', 'name'] adccfg = '''\ lv,bbb,1,Leisure volts sv,bbb,0,Starter volts la,bbb,2,Leisure Amps sa,bbb,3,Starter Amps bv,adc2,0,BowProp Volts ''' adccfg = [dict(zip(keys, line.split(','))) for line in adccfg.splitlines()] -- https://mail.python.org/mailman/listinfo/python-list
Re: How to enter multiple, similar, dictionaries?
On 2023-12-11, Chris Green via Python-list wrote: > Is there a way to abbreviate the following code somehow? > > lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} > sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} > la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} > sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} > bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} > > It's effectively a 'table' with columns named 'dev', 'input' and > 'name' and I want to access the values of the table using the variable > name. Named tuples stored in a dictionary or list? > I could, obviously, store the data in a database (sqlite), I have some > similar data in a database already but the above sort of format in > Python source is more human readable and accessible. I'm just looking > for a less laborious way of entering it really. -- https://mail.python.org/mailman/listinfo/python-list
Re: How to enter multiple, similar, dictionaries?
Chris Green wrote: > Is there a way to abbreviate the following code somehow? > > lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} > sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} > la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} > sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} > bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} > > It's effectively a 'table' with columns named 'dev', 'input' and > 'name' and I want to access the values of the table using the variable > name. > Or, more sensibly, make the above into a list (or maybe dictionary) of dictionaries:- adccfg = [ {'abbr':'lv', 'dev':'bbb', 'input':'1', 'name':'Leisure volts'}, {'abbr':'sv', 'dev':'bbb', 'input':'0', 'name':'Starter volts'}, {'abbr':'la', 'dev':'bbb', 'input':'2', 'name':'Leisure Amps'}, {'abbr':'sa', 'dev':'bbb', 'input':'3', 'name':'Starter Amps'}, {'abbr':'bv', 'dev':'adc2', 'input':0, 'name':'BowProp Volts'} ] This pickles nicely, I just want an easy way to enter the data! > I could, obviously, store the data in a database (sqlite), I have some > similar data in a database already but the above sort of format in > Python source is more human readable and accessible. I'm just looking > for a less laborious way of entering it really. > -- Chris Green · -- https://mail.python.org/mailman/listinfo/python-list
How to enter multiple, similar, dictionaries?
Is there a way to abbreviate the following code somehow? lv = {'dev':'bbb', 'input':'1', 'name':'Leisure volts'} sv = {'dev':'bbb', 'input':'0', 'name':'Starter volts'} la = {'dev':'bbb', 'input':'2', 'name':'Leisure Amps'} sa = {'dev':'bbb', 'input':'3', 'name':'Starter Amps'} bv = {'dev':'adc2', 'input':0, 'name':'BowProp Volts'} It's effectively a 'table' with columns named 'dev', 'input' and 'name' and I want to access the values of the table using the variable name. I could, obviously, store the data in a database (sqlite), I have some similar data in a database already but the above sort of format in Python source is more human readable and accessible. I'm just looking for a less laborious way of entering it really. -- Chris Green · -- https://mail.python.org/mailman/listinfo/python-list