Dictionaries are unordered collections.
1. Accessed by key, not offset position
2. Unordered collections of arbitrary objects
3. Variable-length, heterogeneous, and arbitrarily nestable
4. Of the category "mutable mapping"
5. Tables of object references (hash tables)
you can use dir(dict) and help(dict) to learn more.
Examples:
D={}
D={'name': 'Bob, 'age', 40}
E={ 'CTO' : D} # nesting
D=dict(name='bob', age=40)
D=dict( [('name','bob'), ('age',40)]) # key value pairs
D=dict(zip(keylist, valuelist)) # key value lists
D=dict.fromkeys(['name', 'age']) # set up keys first, value are None
D['name']
E['CTO']['age']
'age' in D
D.keys() # list of keys
D.values()
D.items() # list of tuples, evey tuple is a key value pair
D.copy() # copy
D.clear()
D.update(D2) #merge by keys
D.get(key, default?)
D.pop(key, default?)
D.setdefault(key,default?) # fetch by key, if absent set default (or None)
D.popitem()
len(D) #lenth: number of stored entries
D[key]=42
del D[key]
list(D.keys())
D1.keys() & D2.keys()
D.viewkeys(), D.viewvalues()
D={x: x*2 for x in range(10) } # dictionary comprehension