unlike in listitems stored in dictionary aren' kept in any particular orderin factpython pseudo-randomizes their left-to-right order to provide quick lookup keys provide the symbolic (not physicallocations of items in dictionary variable-lengthheterogeneousand arbitrarily nestable like listsdictionaries can grow and shrink in place (without new copies being made)they can contain objects of any typeand they support nesting to any depth (they can contain listsother dictionariesand so oneach key can have just one associated valuebut that value can be collection of multiple objects if neededand given value can be stored under any number of keys of the category "mutable mappingyou can change dictionaries in place by assigning to indexes (they are mutable)but they don' support the sequence operations that work on strings and lists because dictionaries are unordered collectionsoperations that depend on fixed positional order ( concatenationslicingdon' make sense insteaddictionaries are the only built-incore type representatives of the mapping category-objects that map keys to values other mappings in python are created by imported modules tables of object references (hash tablesif lists are arrays of object references that support access by positiondictionaries are unordered tables of object references that support access by key internallydictionaries are implemented as hash tables (data structures that support very fast retrieval)which start small and grow on demand moreoverpython employs optimized hashing algorithms to find keysso retrieval is quick like listsdictionaries store object references (not copiesunless you ask for them explicitlyfor reference and preview againtable - summarizes some of the most common and representative dictionary operationsand is relatively complete as of python as usualthoughsee the library manual or run dir(dictor help(dictcall for complete list--dict is the name of the type when coded as literal expressiona dictionary is written as series of key:value pairsseparated by commasenclosed in curly braces an empty dictionary is an empty set of bracesand you can nest dictionaries by simply coding one as value inside another dictionaryor within list or tuple as for listsyou might not see dictionaries coded in full using literals very often--programs rarely know all their data before they are runand more typically extract it dynamically from usersfilesand so on lists and dictionaries are grown in different waysthough in the next section you'll see that you often build up dictionaries by assigning to new keys at runtimethis approach fails for listswhich are commonly grown with append or extend instead dictionaries