Python提供了一个内联模块buildin。内联模块定义了一些开发中经常使用的函数,利用这些函数可以实现数据类型的转换、数据的计算、序列的处理等功能。下面将介绍内联模块中的常用函数。

Python内置函数的基本用法可以查看Python安装目录下的doc目录下的说明文档,本文仅介绍Python典型的内置函数使用方法。

reduce(function, iterable[, initializer]) 对序列的值进行累计计算

reduce()可以实现对序列进行连续处理的功能。reduce()的声明如下:

  1. reduce(function, sequence[, initial]) -> value

下面代码演示了reduce(连续处理的功能。

(1)实现对指定列表数字进行累加。

  1. >>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
  2. 15

(2)指定initial值,再执行列表数字累加操作

  1. >>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5], 15)
  2. 30

filter(function, iterable) 使用指定方法对序列过滤可迭代对象的元素

filter()可以对某个序列做过滤处理,判断自定义函数的参数返回的结果是否为真来过滤,并一次性返回处理结果。filter()的声明如下:

  1. filter(function or None, sequence) -> list, tuple, or string

下面这段代码演示了filter()过滤序列的功能,从给定的列表中过滤出大于0的数字。

  1. >>> filter(lambda x:x>0,range(-9,10))
  2. [1, 2, 3, 4, 5, 6, 7, 8, 9]

map(function, iterable, ...)  使用指定方法处理传入的每个可迭代对象的元素,生成新的可迭代对象

map()可以对多个序列的每个元素都执行相同的操作,并返回一个map对象。map()的声明如下所示:

  1. map(function, sequence[, sequence, ...]) -> list

下面代码演示了map()函数处理的功能,

(1)函数只有1个参数,传入1个序列。求指定序列每个元素的平方

  1. >>> map(lambda x:x*x,range(1,10))
  2. [1, 4, 9, 16, 25, 36, 49, 64, 81]

说明:map()函数传入序列的个数需要与map中第1个参数的函数参数个数要一致。否则会报报错。如下

  1. >>> map(lambda x:x*x,range(1,10),range(1,10))
  2. Traceback (most recent call last):
  3. File "<stdin>", line 1, in <module>
  4. TypeError: <lambda>() takes exactly 1 argument (2 given)

(2)求2个序列元素的相加后的值。两个序列的元素个数一致。

  1. >>> map(lambda x,y:x+y,range(1,10),range(11,20))
  2. [12, 14, 16, 18, 20, 22, 24, 26, 28]

上述例子中传入map()函数的2个序列元素个数一致,每个序列中的元素一一对应进行计算。如果每个序列的长度不相同,则短的序列后会补充None,再进行计算。

enumerate(sequence, start=0) 根据可迭代对象创建枚举对象

enumerate()通常用于将一个可遍历的数据对象(如列表、元组或字符串),以列表形式返回,列表中的元素为索引和值组成的元组。

  1. seasons = ['Spring', 'Summer', 'Fall', 'Winter']
  2. for index,value in enumerate(seasons):
  3. print index,value

输出结果如下:

  1. 0 Spring
  2. 1 Summer
  3. 2 Fall
  4. 3 Winter

isinstance(object, classinfo) 判断对象是否是类或者类型元组中任意类元素的子类

  1. >>> num = 2
  2. >>> isinstance (num, int)
  3. True
  4. >>> isinstance (num,str)
  5. False
  6. >>> isinstance (num,(str,int,list))
  7. True

raw_input([prompt])/input([prompt]) 获取控制台的输入

raw_input([prompt])/input([prompt]) 函数都可以用于获取控制台的输入 ,二者的使用区别如下:

(1)raw_input()将所有输入作为字符串看待,返回字符串类型。而input()在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型(int, float)。

(2)二者均能接收字符串,但raw_input()直接读取控制台的输入(任何类型的输入它都可以接收)。而对于input(),它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。

(1)同为输入数字,获取时类型不同

  1. >>> num = raw_input('Please input a number:')
  2. Please input a number:23
  3. >>> type(num)
  4. <type 'str'>
  5. >>> print num
  6. 23
  7. >>> num = input('Please input a number:')
  8. Please input a number:23
  9. >>> type(num)
  10. <type 'int'>
  11. >>> print num
  12. 23

(2)输入字符串,二者输入方式不同

  1. >>> str = raw_input('Please input a string:')
  2. Please input a string:hello
  3. >>> print str
  4. hello
  5. >>> str = input('Please input a string:')
  6. Please input a string:'hello'
  7. >>> print str
  8. hello

如果使用input()函数使用不带引号的方式输入,函数抛出NameError错误,如下

  1. >>> str = input('Please input a string:')
  2. Please input a string:hello
  3. Traceback (most recent call last):
  4. File "<stdin>", line 1, in <module>
  5. File "<string>", line 1, in <module>
  6. NameError: name 'hello' is not defined

sorted(iterable[, cmp[, key[, reverse]]]) 返回一个排序后的列表

sorted()函数用于排序指定序列。返回结果是1个新的序列,不会在原序列上进行操作。sorted()的声明如下:

  1. sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

参数说明:

  1. iterable 可迭代对象。
  2. cmp 比较函数,cmp()有两个参数,参数的值都是从可迭代对象中取出。
  3. key 主要是用来进行比较的元素,只有一个参数,指定可迭代对象中的一个元素来进行排序。
  4. reverse 排序规则,reverse = True 降序 reverse = False 升序(默认)。

(1)对指定列表进行排序

  1. >>> lst = [5,7,6,3,4,1,2]
  2. >>> lst_sorted = sorted(lst)
  3. >>> lst
  4. [5, 7, 6, 3, 4, 1, 2]
  5. >>> lst_sorted
  6. [1, 2, 3, 4, 5, 6, 7]

(2)对指定序列进行排序,cmp参数的使用。

  1. >>> lst = [('b',2),('a',1),('c',3),('d',4)]
  2. >>> lst_sorted = sorted(lst, cmp=lambda x,y:cmp(x[1],y[1]))
  3. >>> print lst_sorted
  4. [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

(3)key参数的使用,

  1. >>> lst_sorted = sorted(lst, key = lambda x:int(x.split(' ')[0].split('.')[3]))
  2. >>> print lst_sorted
  3. ['192.168.0.1 Success', '192.168.0.2 Success', '192.168.0.10 Fail']

(4)reverse参数的使用。

  1. >>> lst = ['192.168.0.1 Success','192.168.0.10 Fail','192.168.0.2 Success']
  2. >>> lst_sorted = sorted(lst, key = lambda x:int(x.split(' ')[0].split('.')[3]), reverse=True)
  3. >>> print lst_sorted
  4. ['192.168.0.10 Fail', '192.168.0.2 Success', '192.168.0.1 Success']

Python常用内置函数介绍的更多相关文章

  1. Python的常用内置函数介绍

    Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...

  2. python常用内置函数

    Python所以内置函数如下: 下面列举一些常用的内置函数: chr()和ord() chr()将数字转换为对应的ascii码表字母 >>> r=chr(65) >>&g ...

  3. $Python常用内置函数典型用法

    Python中有许多功能丰富的内置函数,本文基于Python 2.7,就常用的一些函数的典型用法做一些积累,不断更新中. sorted函数的三种用法 # coding:utf-8 # sorted函数 ...

  4. python常用内置函数和关键字

    常用内置方法 在Python中有许许多多的内置方法,就是一些Python内置的函数,它们是我们日常中经常可以使用的到的一些基础的工具,可以方便我们的工作. 查看所有的内置类和内置方法 # 方法一 bu ...

  5. python常用内置函数整理

    1.最常见的内置函数是print print("Hello World!") 2.数学运算 abs(-5) # 取绝对值,也就是5 round(2.6) # 四舍五入取整,也就是3 ...

  6. python常用内置函数(转载)

    1. 和数字相关 1.1 数据类型 1.2 进制转换 1.3 数学运算 2. 和数据结构相关 2.1 序列 2.2 数据集合 2.3 相关内置函数 3. 和作用域相关 4. 和迭代器生成器相关 5. ...

  7. python常用内置函数用法精要

    用一个表格大致总结一下所有的内置函数用法,如下: 函数 功能简要说明 abs(x) 返回数字x的绝对值或复数x的模 all(iterable) 如果对于可迭代对象中所有元素x都等价于True,则返回T ...

  8. python 常用内置函数简介

    1.作用域相关内置函数globals()--获取全局变量的字典locals()--获取执行本方法所在命名空间内的局部变量的字典 2.和调用相关callable(o),o是参数,看这个变量是不是可调用. ...

  9. python常用内置函数详解

    1.abs(x) 返回一个数字的绝对值.参数可以是整数或浮点数.如果参数是复数,则返回它的大小 n = abs(-12.5) print(n) # 12.5 2.all(iterable) 如果所有的 ...

随机推荐

  1. java 几种对象

     POJO(plain old java object):普通的java对象,有别于特殊的java对象(含继承约束等)和EJB.POJO一般只有一系列的属性和相应的get.set方法.     PO( ...

  2. 对Enum的认识

    1.如何把枚举值取出来作为数据源:     public enum AuditState     {         未审核 = 1,         审核通过=2,         审核未通过=3, ...

  3. python学习之路05

    控制流语句 博主认为所有的语言中,控制语句都是差不多的,无非就是循环,判断,if ,while,for.更重要的是,多加的练习,实战中发现自身问题,加深巩固 所以,下面会以实际的题目为主. 1.用户在 ...

  4. CodeForces - 444C

    F - DZY Loves Colors DZY loves colors, and he enjoys painting. On a colorful day, DZY gets a colorfu ...

  5. FlexRay笔记

    1.FlexRay具有高速.可靠及安全的特点.FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s.CAN网络最高性能极限为1Mbps,而FlexRay总数据速率可达到20 ...

  6. PythonStudy——Python 内置函数 Built-in function

    内置方法:Python中声明每一个类系统都会加上一些默认内置方法,提供给系统调用该类的对象时使用.比如需要实例化一个对象时,需要调用该类的init方法:使用print去打印一个类时,其实调用的是str ...

  7. (C#)中的DataSet、string、DataTable等对象转换成Json

    ConvertJson.cs类 using System; using System.Collections.Generic; using System.Text; using System.Data ...

  8. VUE 微信开发

    1.工具 1.电脑版微信客户端window版本(1.x.x 亲测可以在谷歌浏览器进行微信授权登录,版本越来越好)或者用微信开发工具.很久之前就是用这个方法搞定用chrome进行微信登录授权. 2.us ...

  9. ef中文文档

    https://entityframework.net/zh-CN/home 在使用ef进行对数据库操作时 数据库迁移 https://www.dotnettricks.com/learn/entit ...

  10. SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128)

    问题描述: SyntaxError: 'ascii' codec can't decode byte 0xe4 in position 7: ordinal not in range(128) 解决方 ...