day4-内置函数
一、内置函数列表
二、常见内置函数用法
由于python内置函数较多,在此总结一下部分常见的内置函数的用法:
- abs(x)
功能:取数的绝对值
1 >>> abs(0)
2 0
3 >>> abs(-5)
4 5
5 >>> - all(interable)
功能:判断可迭代对象中的每个元素,如果均为真(非0)则返回true,反之返回false
1 >>> all([1,2,3])
2 True
3 >>> all([0,1,2,3])
4 False
5 >>> - any(interable)
功能:也是判断可迭代对象中的每个元素,不同的是只要有一个元素为真就返回true,反之返回false
1 >>> any(['a','b','c'])
2 True
3 >>> any([]) #空列表为假
4 False
5 >>> any([0])
6 False
7 >>> any([0,1])
8 True
9 >>> - bin(x)
功能:把整数转换成二进制
1 >>> bin(100)
2 '0b1100100'
3 >>> bin(1)
4 '0b1'
5 >>> - bool(object)
功能:判断对象,返回布尔值,为空或0则返回false,反之返回true
1 >>> bool('x')
2 True
3 >>> bool('')
4 False
5 >>> bool(0)
6 False
7 >>> - bytearray[source[, encoding[, errors]]]
功能:把二进制字节转换成可以修改的数组(列表)
1 >>> list1=bytearray('001',encoding='utf-8')
2 >>> list1
3 bytearray(b'001')
4 >>> list1[0] #以列表方式访问元素,返回的是对应的ASCII码
5 48
6 >>> list1[0]=99 #更新时也必须以ASCII码的形式来更新
7 >>> list1
8 bytearray(b'c01') #更新后原列表变了
9 >>> - bytes([source[, encoding[, errors]]])
功能:把字符串转换成字节,但不能修改内容
1 >>> b = bytes("abcd",encoding="utf-8")
2 >>> b
3 b'abcd'
4 >>> b[1]
5 98
6 >>> b[1]=99
7 Traceback (most recent call last):
8 File "<stdin>", line 1, in <module>
9 TypeError: 'bytes' object does not support item assignment - callable(object)
功能:判断一个对象是否可以被调用,目前所知道的只有函数或类才可以通过调用符号()去调用。
1 >>> def func1():
2 ... pass
3 ...
4 >>> callable(func1)
5 True
6 >>> a='test'
7 >>> callable(a)
8 False - chr(x)
功能:把ASCII中的数字转换成对应的字符
1 >>> chr(98)
2 'b' - ord(x)
功能:获取一个字符对应的ASCII码
1 >>> ord('c')
2 99 - dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)
功能:生成一个字典
1 >>> dict
2 <class 'dict'>
3 >>> dict({('address','Chengdu'),('Num','028')}) #传入一个set
4 {'address': 'Chengdu', 'Num': '028'}
5 >>> dict([('address','Chengdu'),('Num','028')]) #传入list
6 {'address': 'Chengdu', 'Num': '028'}
7 >>> dict([['address','Chengdu'],['Num','028']])
8 {'address': 'Chengdu', 'Num': '028'}
9 >>> dict((('address','Chengdu'),('Num','028'))) #传入元组
10 {'address': 'Chengdu', 'Num': '028'}
11 >>> - dir(object)
功能:查看一个对象的方法
1 >>> a=dict((('address','Chengdu'),('Num','028')))
2 >>> dir(a)
3 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__'
4 , '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__',
5 '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '
6 __lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__seta
7 ttr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'co
8 py', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update
9 ', 'values'] - divmod(a,b)
功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。
1 >>> divmod(9,2)
2 (4, 1) - enumerate(iterable,start=0)
功能:遍历一个iterable中,逐个返回索引和相应的元素(一个enumerate对象),start参数可设置索引起始值,默认从0开始
1 >>> test='abcd'
2 >>> for index,item in enumerate(test):
3 ... print(index,item)
4 ...
5 0 a
6 1 b
7 2 c
8 3 d
9 >>> print(list(enumerate(test)))
10 [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
11 >>> print(list(enumerate(test,start=2))) #start参数人为设定起始索引值,默认从0开始
12 [(2, 'a'), (3, 'b'), (4, 'c'), (5, 'd')]
13 >>> print(dict(enumerate(test)))
14 {0: 'a', 1: 'b', 2: 'c', 3: 'd'} - eval(expression, globals=None, locals=None)
功能:进行简单的数学运算,对于符合其他特征不可计算的字符串,进行类型转换,比如可以把符合特征的字符串转换成int类型,list,tuple,dict等。
1 >>> eval('100')
2 100
3 >>> type(eval('100'))
4 <class 'int'>
5 >>> eval("[1,2,3]")
6 [1, 2, 3]
7 >>> eval("(1,2,3)")
8 (1, 2, 3)
9 >>> eval("{1:'name',2:'male',3:'age'}")
10 {1: 'name', 2: 'male', 3: 'age'} - filter(function, iterable)
功能:根据function定义的过滤条件,筛选出Iterable中符合条件的数据。
1 >>> a=filter(lambda x:x %2 == 0, [0,1,2,3,4])
2 >>> print(a)
3 <filter object at 0x0000000001E9BE48> #经filter处理后返回的是一个filter对象
4 >>> for i in a:
5 ... print(i)
6 ...
7 0
8 2
9 4 - map(function, iterable)
功能:接收参数function和可迭代对象iterable,对于每个迭代的元素一一进行函数运算,然后返回相应的结果(简单理解为一对一映射处理)1 >>> def func1(x):
2 ... return x * 2
3 ...
4 >>> rs=map(func1,range(5))
5 >>> for i in rs:
6 ... print(i)
7 ...
8 0
9 2
10 4
11 6
12 8
13 >>> rs
14 <map object at 0x00000000021DBE10> - reduce(function,iterable,initializer)
功能:将一个带有两个参数的方法累计应用到一个可迭代的对象的元素上(function必须接收两个参数,遍历可迭代对象的元素,把上一次计算的结果作为下一次计算的第一个参数),以便把可迭代对象规约为一个单一的值,即大数据中的reduce规约计算。其中第三个参数初始值是可选的,如果给出了初始值,则把初始值作为第一个计算的第一个参数。
1 >>> def f(x,y):
2 ... return x+y
3 ...
4 >>> reduce(f,[1,3,5,7,9])
5 Traceback (most recent call last):
6 File "<stdin>", line 1, in <module>
7 NameError: name 'reduce' is not defined
8 >>> from functools import reduce #注意这里需要先导入后才能使用
9 >>> reduce(f,[1,3,5,7,9])
10 25
11 >>> reduce(f,[1,3,5,7,9],100) #给出初始值100
12 125计算过程如下:
- float
功能:把一个数字形式的字符串转换为浮点类型的数据。1 >>> float('a')
2 Traceback (most recent call last):
3 File "<stdin>", line 1, in <module>
4 ValueError: could not convert string to float: 'a' #a不是数字形式,无法转换
5 >>>
6 >>> float('1')
7 1.0
8 >>> float('1.23')
9 1.23 - fronzenset(interable)
功能:把一个可迭代对象转换为一个不可变的集合(双重特性,首先是符合集合的特性,其次是不可变)1 >>> res=frozenset([1,1,2,2,3])
2 >>> res
3 frozenset({1, 2, 3}) #集合中的元素不可重复,符合集合特征
4 >>> res.add(4) #不能针对该集合增加元素,不可变
5 Traceback (most recent call last):
6 File "<stdin>", line 1, in <module>
7 AttributeError: 'frozenset' object has no attribute 'add'
8 >>> dir(res) #没有可变方法
9 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '_
10 _eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__ini
11 t__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__',
12 '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__r
13 or__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__'
14 , '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoi
15 nt', 'issubset', 'issuperset', 'symmetric_difference', 'union']
16 >>> - globals()
功能:返回程序中所有的变量键值对(key 变量名, value 变量值,全局变量)1 >>> def foo(x):
2 ... global a
3 ... a=10
4 ... b=20
5 ... print(globals())
6 ...
7 >>> foo()
8 Traceback (most recent call last):
9 File "<stdin>", line 1, in <module>
10 TypeError: foo() missing 1 required positional argument: 'x'
11 >>> foo(1)
12 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <cl
13 ass '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {
14 }, '__builtins__': <module 'builtins' (built-in)>, 'f': <function f at 0x0000000
15 001D23E18>, 'reduce': <built-in function reduce>, 'res': frozenset({1, 2, 3}), '
16 test': <function test at 0x00000000023DAEA0>, 'foo': <function foo at 0x00000000
17 02543840>, 'a': 10} #定义的全局变量已经获取打印到
18
19 >>> def foo2():
20 ... global a
21 ... a=100
22 ... print(globals().get('a')) #直接获取全局变量的值
23 ...
24 >>> foo2()
25 100 - locals()
功能:与globals()类似,但返回的是局部变量1 >>> def foo(x):
2 ... a='hehe'
3 ... print(locals())
4 ...
5 >>> foo(1)
6 {'a': 'hehe', 'x': 1}
7 >>> - hash()
功能:根据一定的算法生成固定的映射结果,相同的输入生成相同的输出1 >>> hash('xy')
2 6325275833896794579
3 >>> hash('xy')
4 6325275833896794579
5 >>> hash('100')
6 -93280025000303673
7 >>> hash(100)
8 100
9 >>>这里需要注意的是它的应用场景hash函数把复杂的key(如中文)转换为固定的值存储,以便后续的复杂处理(查找,更新等),因为处理映射后的value更容易
- max(iterable)
功能:返回一个可迭代对象的最大值1 >>> max((1,2,3))
2 3
3 >>> max({1,2,6})
4 6 - min(interable)
功能:返回一个可迭代对象的最小值 - input()
功能:输入字符串1 >>> input(':')
2 :hehe
3 'hehe' - list()
功能:把其他的序列转换成列表1 >>> list({1,2,3})
2 [1, 2, 3] - set()
功能:把其他的序列(可迭代对象)转换成集合1 >>> set({1:'a',2:'b'})
2 {1, 2}
3 >>> set(range(5))
4 {0, 1, 2, 3, 4} - hex()
功能:转换十六进制1 >>> hex(16)
2 '0x10'
3 >>> - oct()
功能:转换八进制1 >>> oct(8)
2 '0o10'
3 >>> oct(7)
4 '0o7' - sorted(iterable[, key][, reverse])
功能:对一个序列进行排序1 >>> a={1:'a',2:'c',3:'b'}
2 >>> sorted(a) #默认只是排序key
3 [1, 2, 3]
4 >>> sorted(a.items()) #a.items返回的是包含键值对元组的列表,这里还是按key排序
5 [(1, 'a'), (2, 'c'), (3, 'b')]
6 >>> sorted(a.items(),key=lambda x:x[1]) #指定键值对中的value作为排序的key,因此按value来排序
7 [(1, 'a'), (3, 'b'), (2, 'c')]
8 >>> print(a.items())
9 dict_items([(1, 'a'), (2, 'c'), (3, 'b')]) - zip(*iterables)
功能:组合两个对象(zip中文拉链的意思),一一对应起来(如果有一个序列的个数更少,则按少的那个来)。1 >>> a=[1,2,3]
2 >>> b={'a','b'}
3 >>> for i in zip(a,b):
4 ... print(i)
5 ...
6 (1, 'a')
7 (2, 'b')
8 >>> - __import__(name, globals=None, locals=None, fromlist=(), level=0)
功能:当导入的模块是一个字符串时,用__import__()1 >>> import os
2 >>> __import__('os')
3 <module 'os' from 'C:\\Program Files (x86)\\python3.6.1\\lib\\os.py'>
先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
由于没有更多的元素了,计算结束,返回结果25。
典型的应用场景是:凡是要对一个可迭代独享进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用reduce方式实现(比如统计一个集合中key重复的次数)。
day4-内置函数的更多相关文章
- python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器
python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...
- Day4 内置函数补充、装饰器
li = [11,22,33,44]def f1(arg): arg.append(55)#函数默认返回值None,函数参数传递的是引用li = f1(li) print(li) 内置函数补充: ...
- day4 内置函数 迭代器&生成器 yield总结 三元运算 闭包
内置函数: 内置函数 # abs()返回一个数字的绝对值.如果给出复数,返回值就是该复数的模. b = -100 print(b) print(abs(b)) # all() 所有为真才为真,只要有一 ...
- python全栈开发-Day13 内置函数
一.内置函数 注意:内置函数id()可以返回一个对象的身份,返回值为整数. 这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以 ...
- 函数和常用模块【day04】:内置函数(九)
一.11-20 11.ord(c) 功能:根据字符,找到对应的ascii值 1 2 >>> ord('a') 97 12.classmethod(function) 功能:类方法,这 ...
- 【python】-- 内置函数、软件目录开发规范(代码编码风格)
内置函数 一.内置函数表格 二.内置函数演示 1.abs(x) 功能:取数的绝对值 >>> abs(-1) #取-1的绝对值 1 ########################## ...
- python中常用内置函数和关键词
Python 常用内置函数如下: Python 解释器内置了很多函数和类型,您可以在任何时候使用它们.以下按字母表顺序列出它们. 1. abs()函数 返回数字的绝对值. print( abs(-45 ...
- 文成小盆友python-num4 装饰器,内置函数
一 .python 内置函数补充 chr() -- 返回所给参数对应的 ASCII 对应的字符,与ord()相反 # -*- coding:utf-8 -*- # Author:wencheng.z ...
- python学习之路-4 内置函数和装饰器
本篇涉及内容 内置函数 装饰器 内置函数 callable() 判断对象是否可以被调用,返回一个布尔值 1 2 3 4 5 6 7 8 9 10 11 num = 10 print(callabl ...
- 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...
随机推荐
- Vue-router2.0学习笔记(转)
转:https://segmentfault.com/a/1190000007825106 Vue.js的一大特色就是构建单页面应用十分方便,既然要方便构建单页面应用那么自然少不了路由,vue-rou ...
- Linux文件IO
参考<unix高级环境编程> 本章开始讨论U N I X系统,先说明可用的文件I / O函数——打开文件.读文件.写文件等等.大多数U N I X文件I / O只需用到5个函数:o p e ...
- IP地址处理模块IPy
IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能.可扩展性等方面. 在这个过程中,免不了要计算大量的IP地址,包括网段.网络掩码.广播地址.子网数.IP ...
- MySQL数据库(3)_MySQL数据库表记录操作语句
附: MYSQL5.7版本sql_mode=only_full_group_by问题 .查询当前sql_mode: select @@sql_mode .查询出来的值为: set @@sql_mode ...
- Centos6.6安装mysql记录
一.环境介绍: 系统:Cerntos6.6 Mysql版本:mysql-5.6.34 二.安装操作: 1.卸载旧版本: rpm -qa |grep mysql mysql-server-5.1.73- ...
- 基于IG的特征评分方法
本文简单介绍了熵.信息增益的概念,以及如何使用信息增益对监督学习的训练样本进行评估,评估每个字段的信息量. 1.熵的介绍 在信息论里面,熵是对不确定性的测量.通俗来讲,熵就是衡量随机变量随 ...
- ubuntu 12.04.2 基于 L3.0.35_1.1.0_121218_source LTIB 问题汇总
1)解压L3.0.35_1.1.0_121218_source.tar.gz 2)cd L3.0.35_1.1.0_121218_source ,执行./install 3) 复制 patch-l ...
- 黑色CSS3立体动画菜单
在线演示 本地下载
- QT应用程序设置图标
一.纯Qt 1.下载图标:app.ico 2.新建记事本,输入:IDI_ICON1 ICON DISCARDABLE"app.ico":改变名字为jude.rc 3.将两个文件放在 ...
- 《Inode与Block重要知识总结核心讲解》【转】
本文转载自:https://blog.csdn.net/BlackEnn/article/details/50787092 1.查看/dev/sda1下磁盘分区的block大小: 2.查看单个inod ...