A basic dictionary question
David Aldrich
David.Aldrich at EMEA.NEC.COM
Thu Jun 11 06:10:23 EDT 2015
Hi
I am fairly new to Python. I am writing some code that uses a dictionary to store definitions of hardware registers. Here is a small part of it:
import sys
register = {
'address' : 0x3001c,
'fields' : {
'FieldA' : {
'range' : (31,20),
},
'FieldB' : {
'range' : (19,16),
},
},
'width' : 32
};
def main():
fields = register['fields']
for field, range_dir in fields: <== This line fails
range_dir = field['range']
x,y = range_dir['range']
print(x, y)
if __name__ == '__main__':
main()
I want the code to print the range of bits of each field defined in the dictionary.
The output is:
Traceback (most recent call last):
File "testdir.py", line 32, in <module>
main()
File "testdir.py", line 26, in main
for field, range_dir in fields:
ValueError: too many values to unpack (expected 2)
Please will someone explain what I am doing wrong?
Also I would like to ask how I could print the ranges in the order they are defined. Should I use a different dictionary class or could I add a field to the dictionary/list to achieve this?
Best regards
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20150611/1724352d/attachment.html>
More information about the Python-list
mailing list