Python学习---内置函数的学习
内置函数
【Py3.5官方文档】https://docs.python.org/3.5/library/functions.html#abs
| Built-in Functions | | | |
重要函数
filter(function, sequence): 对sequence中的item依次执行function(item),将执行结果为True的item做成一个filter object的迭代器返回。可以看作是过滤函数。【不更改原来的值,只有一个过滤的效果】
def fun1(s): if s != 'a': return s ret = filter(fun1, str) print(ret) # ret是一个迭代器对象 <filter object at 0x0000000000A4C518> print(list(ret)) # ['b', 'c', 'd']
eval: 计算器功能【在引号内使用】和直接返回数据原本的类型
print(eval('1+2+3+4+5+6+7+8+9+10')) # 55
map(function, sequence) : 对sequence中的item依次执行function(item),将执行结果组成一个map迭代器返回【更改元素值】
str = ['m', 'g', 'f', 'w'] def fun2(s): return s + "ood" ret = map(fun2, str) print(ret) # map object的迭代器 print(list(ret)) # ['mood', 'good', 'food', 'wood']
注意: map也支持多个sequence,这就要求function也支持相应数量的参数输入:
def add(x, y): return x+y print (list(map(add, range(10), range(10))))##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
map和filter的区别:
def f(s): return s + 'ood' li = ['f', 'm', 'g', 'h'] print(list(map(f, li))) # ['food', 'mood', 'good', 'hood'],拼凑后重新输出 print(list(filter(f, li))) # ['f', 'm', 'g', 'h'], 输出原来的值
reduce(function, sequence, starting_value): 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用. 【直接返回结果,区别map和filter, 阶乘很方便】
from functools import reduce def fac(x,y): return x * y print(reduce(fac, range(1, 5))) # 24 print(reduce(fac, range(1, 5), 10)) # 240 getattr(obj, name, default)函数:从obj对象中取出来某个属性或者方法,没有则打印default值 class Foo: def __init__(self, name, age): self.name = name self.age = age obj = Foo('ftl', 23) print(obj.name) b = 'name' print('obj.__dict__[b]:',obj.__dict__[b]) # 通过字典取值 print("getattr(obj, 'name'):",getattr(obj, 'name')) # 通过内置函数getattr取出值 setattr(obj, 'school', 'xupt') print(hasattr(obj, 'school')) print(delattr(obj, 'school')) # 其他的内置方法,通过字符串的形式操作对象的成员
作者:小a玖拾柒
-------------------------------------------
个性签名: 所有的事情到最後都是好的,如果不好,那說明事情還沒有到最後~
本文版权归作者【小a玖拾柒】和【博客园】共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利!