Python面试题

之前同事问了一道Python题目如下,暂时归类为面试题

题目:把类似'123.456'的字符串转换成浮点型数据

  • 方法一:


    >>> print '{:.3f}'.format(float('123.456'))
    >>> 123.456
  • 方法二:指定map、reduce高阶函数

    思路:先处理小数点,然后在整数位、小数位相加。步骤如下

    s = '123.456'

  1. 处理小数:使用字符串切片方式。

    s.split('.')

    这样就得到长度为2的数组['123', '456']

  2. 处理list中的第一个元素(整数列)。使用迭代的方式得到整数123

     def map_int(s):
    '''
    @see: 迭代时把字符串转换成int类型
    '''
    return int(s)

    然后使用高阶函数map(func, seq)对list中的字符串迭代:得到[1, 2, 3]

     map(map_int, s.split('.')[0])
  3. 使用高阶函数reduce(func, seq),对map()后的数据累积得到123

     reduce(lambda x,y : x*10 + y, map(map_int, s.split('.')[0]))

    同样的方法处理小数位

     reduce(lambda x,y : x*0.1 + y, map(map_int, s.split('.')[1][::-1])) * 0.1
  • 整个代码块如下:或者直接把map_int()函数替换为:lambda x:int(x)

      def map_int(s):
    '''
    @see: 迭代时把字符串转换成int类型
    '''
    return int(s)
    reduce(lambda x,y : x*10 + y, map(map_int, s.split('.')[0])) + reduce(lambda x,y : x*0.1 + y, map(map_int, s.split('.')[1][::-1])) * 0.1

generated by haroopad

之前同事问到的一道python题目的更多相关文章

  1. 一道算法题目, 二行代码, Binary Tree

    June 8, 2015 我最喜欢的一道算法题目, 二行代码. 编程序需要很强的逻辑思维, 多问几个为什么, 可不可以简化.想一想, 二行代码, 五分钟就可以搞定; 2015年网上大家热议的 Home ...

  2. 一道Python面试题

    无意间,看到这么一道Python面试题:以下代码将输出什么? def testFun():    temp = [lambda x : i*x for i in range(4)]    return ...

  3. Binary Search Tree 以及一道 LeetCode 题目

    一道LeetCode题目 今天刷一道LeetCode的题目,要求是这样的: Given a binary search tree and the lowest and highest boundari ...

  4. 一道python面试题引发的血案

    这里说的是一道阿里校招的面试题:一行代码实现对列表a中的偶数位置的元素进行加3后求和? 今天去面试同样遇到了这个题目,这道题考察的是对python高阶函数map/filter的灵活运用(具体的使用方法 ...

  5. 搜狗一道java题目 关于对象 synchronized 关键字作用在 int, integer

      第一次见到这个题目,我觉得自己没学到java,太浅了,其实这个问题没有考synchronized关键字,只是考什么是对象? 1.在java编程思想的第二章有一句话; 一切都是对象,很可惜int,c ...

  6. Python题目练习(二)

    1.如何实现对python列表去重,并保持原来顺序 li = [1,2,5,3,1,6,3,8,0,3,2,4] l = [] for i in li: if i not in l: l.append ...

  7. 阿里巴巴Web前端面试的一道JS题目,求解答!!!

    题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } ...

  8. python -- 题目不看别人的自己写然后比较

    题目一 ''' 编写Python脚本,分析xx.log文件,按域名统计访问次数倒序输出 xx.log文件内容如下: https://www.sogo.com/ale.html https://www. ...

  9. 高级测试工程师面试必问面试基础整理——python基础(一)(首发公众号:子安之路)

    现在深圳市场行情,高级测试工程师因为都需要对编程语言有较高的要求,但是大部分又没有python笔试机试题,所以面试必问python基础,这里我整理一下python基本概念,陆续收集到面试中python ...

随机推荐

  1. Docker Machine 详解

    笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...

  2. 使用linux sort给一个文件里的内容按规则排序

    任务:report.txt文件里有以下内容:记录了一些方法的执行时间,要求按执行时间降序排列. void com.dustpan.zeus.core.service.MergeService.star ...

  3. thinkphp中fetch渲染模板的处理

    <script type="text/javascript"> function xiugai(elm){ var formData1=$("#a1_&quo ...

  4. JAVA容器结构图

  5. VB6之WebBrowser控件

    UI短手或者GDI+用烦的童鞋可以借用WebBrowser打造漂亮的程序界面,只需要下载一个好看点的html代码就够了. 引用: Microsoft Html Object Library 部件: M ...

  6. 第二章:1.0 Django 入门和开发环境

    1. 选择 Django Web框架来做Web接口开发,主要原因是由于学习资料丰富,便于学习. 2. Django 对 python 版本的支持情况. Django 的版本在 1.8 ,1.9 , 1 ...

  7. python编程快速上手之第6章实践项目参考答案

    #!/usr/bin/env python3.5 2 #coding:utf-8 3 # 4 # 这个项目主要目的是字符串的处理,简单格式化输出 5 tableData = [['apples','o ...

  8. voa 2015 / 4 / 18

    Words in This Story gerund - n. an English noun formed from a verb by adding -ing infinitive - n. th ...

  9. Java虚拟机:内存模型详解

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 我们都知道,当虚拟机执行Java代码的时候,首先要把字节码文件加载到内存,那么这些类的信息都存放在内存中的哪个区域呢?当我们创建一个对象实 ...

  10. Rsync:一个很实用的文件同步命令

    sync是Linux系统下的文件同步和数据传输工具,可用于同步文件.代码发布 1.安装. yum install -y xinetd yum insatll -y rsync 2.配置 打开rsync ...