On 2023-12-11, Chris Green <c...@isbd.net> wrote: > Chris Green <c...@isbd.net> 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