the list-based record representations in the prior section workthough not without some cost in terms of performance required to search for field names (assuming you need to care about milliseconds and suchbut if you already know some pythonyou also know that there are more efficient and convenient ways to associate property names and values the built-in dictionary object is naturalbob {'name''bob smith''age' 'pay' 'job''dev'sue {'name''sue jones''age' 'pay' 'job''hdw'nowbob and sue are objects that map field names to values automaticallyand they make our code more understandable and meaningful we don' have to remember what numeric offset meansand we let python search for the value associated with field' name with its efficient dictionary indexingbob['name']sue['pay'('bob smith' not bob[ ]sue[ bob['name'split()[- 'smithsue['pay'* sue['pay' because fields are accessed mnemonically nowthey are more meaningful to those who read your code (including youother ways to make dictionaries dictionaries turn out to be so useful in python programming that there are even more convenient ways to code them than the traditional literal syntax shown earlier-- with keyword arguments and the type constructoras long as the keys are all stringsbob dict(name='bob smith'age= pay= job='dev'sue dict(name='sue jones'age= pay= job='hdw'bob {'pay' 'job''dev''age' 'name''bob smith'sue {'pay' 'job''hdw''age' 'name''sue jones'by filling out dictionary one field at time (recall that dictionary keys are pseudorandomly ordered)sue {sue['name''sue jonessue['age' sue['pay' sue['job''hdwsue {'job''hdw''pay' 'age' 'name''sue jones'step representing records