Python中的map_reduce

  原教程地址: map/reduce-廖雪峰

  将数值型字符串转换成数值,解释map, reduce的使用;

#!/usr/bin/env python
#-*- coding:utf-8 -*-
# @Time    : 19-5-1 下午8:22
# @Author  : chen

"""
map(func, iter)
    将方法作用在迭代器中的每一个元素上
    两个参数:
        func: 方法
        iter: 迭代器
    返回是一个Iterator

reduce(func, sequence)
    将sequence从左至右,两个参数输入到func中,每次func返回的值作为sequence的左端的值
    两个参数
        func: 方法
        sequence
"""

from functools import reduce
class StrNum:

    def func_1(self, s):
        logits = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
        return logits[s]


    def func_2(self, v1, v2):
        return v1 * 10 + v2

    def str2num(self, str):
        return reduce(self.func_2, map(self.func_1, str))

    def str2num_2(self, str):
        return reduce(lambda x, y: x* 10 +y, map(self.func_1, str))

st = StrNum()

# ----------- string to num -------------
str = '1234'
result_1 = st.str2num(str)
print(result_1, type(result_1))

result_2 = st.str2num_2(str)
print(result_2, type(result_2))


posted @ 2019-05-01 20:44  chenzhen0530  阅读(185)  评论(0编辑  收藏  举报