字符串转换为整数

# -*- coding: utf-8 -*-
'''
    练习一:
    自己写一个函数,实现字符串转换为整数
    {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    例如: '123456'
    返回 123456数字
    使用mapreduce函数
'''
from functools import reduce
'''
    '123456' 转换为 123456
    转换步骤:
    1.将字符串中的每一个字符串执行char_number函数,根据传入的字符,从字典中取出对应的数字值,并返回
    2.reduce函数,将rs中的每一个数字进行累加,计算方式 x*10+y 第一次执行 1*10+2=12 第二次 12*10+3 =123 依次执行之后得到123456
'''
# 声明函数将字符串转为存放数字的列表:例如 [1,2,3,4,5,6]
def char_number(string):
    # 字典存放字符0对应数字0,字符1对应数字1......
    chars_dict = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    # 根据传入的string,从字典中取出数字
    number = chars_dict.get(string,string)
    # 返回数字
    return number
# 使用map()函数执行,得到[1,2,3,4,5,6]
rs = list(map(char_number, '123456'))
# 累加函数
def result(x, y):
    # 第一次执行 1*10+2=12 第二次 12*10+3 =123 依次执行之后得到123456
    num = x * 10 + y
    # 返回
    return num

# rs= reduce(result, rs)
# 使用lambda函数
rs = reduce(lambda x,y:x*10+y, rs)
print(rs)
print(type(rs))


# 封装函数版本

def INT(string):

    def char_number(s):
        chars_dict = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}
        num = chars_dict.get(s, s)
        return num
    rs = list(map(char_number, string))

    rs = reduce(char_number, rs)

    return rs

rs = INT('123456')
print(rs)
print(type(rs))

# coding:utf-8

# 将所有字符串中的字符,全部转化为小写。即可以是一个单独的字符串,也可以是一个字符串列表。

# 1>先使用map()函数,将字符串中的每一个字符转化为小写;
# 2>再使用reduce()函数,对map()函数返回的列表进行逻辑处理;

# 如果是一个字符串,需要使用map()reduce()组合;
# 如果是一个字符串列表,只需要map()函数就可以了;

def LOWER(string):
    # char_lower函数是作用到map()函数的。
    def char_lower(s):
        # 26个英文字母对应的小写字母,在字典中进行定义。
        chars_dict = {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd', 'E': 'e', 'F': 'f', 'G': 'g', 'H': 'h', 'I': 'i' ,'J': 'j', 'K': 'k', 'L': 'l', 'M': 'm', 'N': 'n', 'O': 'o', 'P': 'p', 'Q': 'q', 'R': 'r','S': 's', 'T': 't', 'U': 'u', 'V': 'v', 'W': 'w', 'X': 'x', 'Y': 'y', 'Z': 'z'}
        # 根据s取值,如果取不到,就赋原值
        char = chars_dict.get(s, s)

        return char
    rs = list(map(char_lower, string))

    rs = reduce(lambda x,y:x+y, rs)

    return rs


res = LOWER('AbCdEF')
print res
print(type(res))


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值