day4-内置函数2
一、概述
之前小编我写了一遍内置函数第一篇,因为内置函数的内容太多了,所以小编把它分开写了,防止太多搞乱了。
内置函数博客地址:猛击这里
二、内置函数详情
1、filter(function, iterable)
功能:通过function过滤条件,去获取iterable中你想要的数据。
>>> res = filter(lambda n:n>5,range(10)) >>> res #得到一个迭代器 <filter object at 0x0000000003093BE0> >>> for i in res: print(i) 6 7 8 9
2、map(function, iterable)
功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。
>>> res = map(lambda n:n*2,range(5)) #n*2是处理方式 >>> res <map object at 0x00000000031B4BE0> >>> for i in res: print(i) 0 2 4 6 8
3、reduce(function,iterable)
功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。
>>> from functools import reduce >>> res = reduce(lambda x,y:x+y,range(10)) #x+y的值赋给x,rang(10)中的每个元素赋给y >>> res 45 >>> res = reduce(lambda x,y:x*y,range(1,10)) #x*y的值赋给x,rang(10)中的每个元素赋给y >>> res 362880
4、float([x])
功能:把一个浮点类型的字符串转换为浮点类型的数据。
>>> float('+1.23') 1.23 >>> float(' -12345\n') -12345.0 >>> float('1e-003') 0.001 >>> float('+1E6') 1000000.0 >>> float('-Infinity') -inf
5、format(value[, format_spec])
功能:格式话字符串,详细使用:猛击这里
6、frozenset([iterable])
功能:把集合变成一个不可变的集合
>>> res = frozenset([1,2,3,4,3]) >>> res frozenset({1, 2, 3, 4}) #去重的,不可变的集合 >>> dir(res) #没有可变的方法 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']
注:set()是可变的
7、getattr(object, name[, default])
功能:这边是类那边的,后续再讲。
8、globals()
功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value
print(globals()) #输出 {'__spec__': None, '__name__': '__main__', '__file__': 'D:/PycharmProjects/pyhomework /day4/内置函数/内置函数.py', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000000695B00>, '__cached__': None, '__builtins__': <module 'built
注:可以判断一个文件中的变量是否存在,而globals()只能打印全局变量
9、hash(object)
功能:反射出一个对象的对应的hash值。
>>> hash('zhangqigao') 2313972277536963491 >>> hash(255) 255 >>> hash('a') 6806508886604307842
这个有什么用呐?
先看下面的图:
看上面的图我们知道,如果一张表中5百万个用户信息,以我们现在的知识,只能用for循环去查找,那样的话,效率会很低。那我们怎么办呢?我们可以这样,就是把每一个姓名对应有一对应的值,然后通过对应的key值去定位,key值是放在一个列表中,当我们去查找某个key值时,可以折半查找,这样大大减少了查找时间,提高效率,这种也叫二分法查找,后面会有对应的博客专门写这一块的。