
x = 5

def foo():
    print 1
foo()

locals()
locals().keys()
lambda x,y: x * y
locals()
locals().keys()
'lambda' in locals().keys()
foo = lambda x,y: x * y
foo 
foo(3,6)
#?sorted
x = [(4, 9, 0), (1, 3, 2), (5, 14, 1)]
def keyfunc(row):
    return row[1]
sorted(x, key=keyfunc)
sorted(x, key=lambda r: r[1])
sorted(x, key=lambda r: r[2])
sorted(x, key=lambda r: r[1])
sorted(x)
sorted(x, key=lambda row: row[1])
sorted(x, key=lambda (row): row[1])
sorted(x, key=lambda (x,y): row[1])
sorted(x, key=lambda x: row[1], reversed=True)
sorted(x, key=lambda x: row[1], reverse=True)
sorted(x, key=lambda x: x[1], reverse=True)
x = {'simeon', ('franklin', 'instructor'), 'joseph': ('hanson', 'warlord')}
x = {'simeon': ('franklin', 'instructor'), 'joseph': ('hanson', 'warlord')}
x
x.values()
x = {'simeon': ('simeon', 'franklin', 'instructor'), 'joseph': ('joseph', 'hanson', 'warlord')}
x.values()
sorted(x, key=lambda r:r[2])
def key_factory(col):
    def keyfunc(row):
        return row[col]
    return keyfunc

import factory
from factory import *
sorted(x.values(), key=key_func(0))
sorted(x.values(), key=key_factory(0))
sorted(x.values(), key=key_factory(1))
sorted(x.values(), key=key_factory(2))
reload(factory)
key_factory = factory.key_factory
sorted(x.values(), key=key_factory(2))
sorted(x.values(), key=key_factory(1))
def list_all(x):
    print x.values()
list_all(x)
y = x
list(y)
x
y
list_all(x)
list_all(y)
menu = {1: list_all}
menu[1]()
menu = {1: lambda : list_all(x)}
menu[1]()
x
def factory():
    pass
def adder(num):
    return lambda x: num + x
add2 = adder(2)
add2(5)
add7 = adder(7)
add7(8)
add7(14)
add7 
import operator
def plus(x,y):
    return x+y
plus 
+
operator.add 
x
sorted(x.values, key=operator.itemgetter(2))
operator.itemgetter(2)
sorted(x.values(), key=operator.itemgetter(2))

