python functional programming basic
from functools import singledispatch
@singledispatch
def fn(x):
print(x)
@fn.register(int)
def _(x):
print("Integer:", x)
@fn.register(str)
def _(x):
print("String:", x)
@fn.register(float)
def _(x):
print("Float:", x/2)fn('1')String: 1
fn(1)Integer: 1
list_a = [1, 2, 3, 4, 5]
list_b = ['a', 'b', 'c', 'd', 'e']
list_c = ['user', 'habit', 'data', 'analysis']list(itertools.chain(list_a, list_b, list_c))list(zip(list_a, list_b))list(zip(itertools.cycle(range(2)), list_c))list(itertools.repeat(list_a, 3))list(itertools.dropwhile(lambda x: x < 2, list_a))list(itertools.takewhile(lambda x: x < 3, list_a))data = [
{'name': 'A', 'age': 34},
{'name': 'B', 'age': 34},
{'name': 'C', 'age': 29},
{'name': 'D', 'age': 33}
]
group_data = itertools.groupby(data, key=lambda x: x['age'])
for k, v in group_data:
print('{}: {}'.format(k, list(v)))