喜欢学习的轮子 2019-08-03 15:02 采纳率: 0%
浏览 360

关于python的字典问题。。。

#为什么返回这个字典能把字符串转换成int数组形式

from functools import reduce

DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

def str2int(s):
    def fn(x, y):
        return x * 10 + y
    def char2num(s):
        return DIGITS[s]
    return reduce(fn, map(char2num, s))
  • 写回答

1条回答

  • threenewbee 2019-08-03 16:47
    关注
    这个程序将字符中的 '1' '2' '3' ... 利用查表法转换为1 2 3,这样就算出每一位。
    再用reduce累计,每次都把之前的结果x10加上新的结果。
    
    比如有 '123'
    首先得到 '1' '2' '3'
    然后map出来就是1 2 3
    再reduce 
    1
    1x10+2
    (1x10+2)x10+3
    就算出123
    
    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 虚心请教几个问题,小生先有礼了
  • ¥30 截图中的mathematics程序转换成matlab