map reduce

import schedule
import time
from functools import reduce


def get_():
    print("working ...")


def main():
    schedule.every(2).seconds.do(get_)

    while True:
        schedule.run_pending()
        time.sleep(0.2)


def xxx():
    import itertools
    scientists = ({'name': 'Alan Turing', 'age': 105, 'gender': 'male'},
                  {'name': 'Dennis Ritchie', 'age': 76, 'gender': 'male'},
                  {'name': 'Ada Lovelace', 'age': 202, 'gender': 'female'},
                  {'name': 'Frances E. Allen', 'age': 84, 'gender': 'female'})
    # grouped = {item[0]: list(item[1])
    #            for item in itertools.groupby(scientists, lambda x: x['gender'])}
    # print(grouped)
    for i in itertools.groupby(scientists, lambda x: x['gender']):
        print(i[0], list(i[1]))
        # print(i)


def less_data(x, y):
    return x-y


def test_reduce():
    res = reduce(less_data, [10, 32, 6, 1])
    print(res)
    return


def test_map():
    res = map(less_data, [10, 32, 6, 1], [1, 2, 3, 4])
    print(list(res))
    # for x in res:
    #     print(x)
    # print(res)


def add(data_list):
    if data_list[0] - data_list[1] > 5:
        return True
    else:
        return False


def test_filter():
    """
    filter(function_or_None, iterable)
    function 只能返回True or False
    :return:
    """
    res = filter(add, [[10,1],[2,10]])
    print(list(res))


if __name__ == "__main__":
    pass
    # main()
    # test_reduce()
    # test_map()
    test_filter()

posted @ 2019-03-22 17:04  nanaindi  阅读(115)  评论(0编辑  收藏  举报