内置函数+匿名函数

内置函数:

  一、作用域相关函数:

      1.locals  (本地作用域中所有名字)

      2.globals(全局作用域中所有名字)

  二、迭代器/生成器相关函数:

      1.range(0,100,2)生成数字,可以加步长。

      2.next  (迭代器)使碰到yield继续执行

      3.iter    (*)让*变成迭代器

  三、其他函数:

      1.dir  ()查看内置属性

      2.help()帮助

      3.callable()是否可以调用(为函数),返回True或False

      4.import   使用模块

      5.open()打开文件

      6.id ()返回值,每次返回不一样。

      7.hash()返回值,用hash算法,每次执行返回不一样。

      8.print()输入内容,pycharm默认显示到页面上,也可以显示到某个文件内。

        print('a',end = '')指定输出的结束符

        print('a‘,4,5,sep = '|')指定分隔符

        print('aaa',file = f)指定输出到某个文件中

      9.input()用户交互

      10.compile()编译

      11.exec()没返回值

      12.eval()有返回值,不建议用,有漏洞。

  四、数据类型相关函数:

    和数字相关:

      1.bool()布尔值

      2.int()整型

      3.float()浮点数

        浮点数 != 小数

        浮点数(有限循环小数,无限循环小数)

        小数:(有限循环小数,无限循环小数,无限不循环小数)

      4.complex()复数

        复数=实数+虚数    复数 5+12j     j=J

        实数:有理数

           无理数

        虚数:虚无缥缈的数

      5.bin()二进制

      6.oct()八进制

      7.hex()十六进制

      8.abs()绝对值

      9.divmod(9,5)除余  div出发 mod取余    (1,4)

      10.round(3.232)取整 3

      11.pow(3,4)幂运算81

      12.sum([2,3])求和5

      13.min()最小数 key = abs 绝对值最小的数

      14.max()最大数 同上

    和数据结构相关:

      序列:

      1.list()列表 强转

      2.tuple()元组  强转 

      3.reversed()序列,由大到小,返回迭代器,可以用list强转

      4.slice() 类似切片,从1,5步长

      5.str()字符串类型

      6.format()格式化输出    print(format('test','>40'))  让test前加40个空格,^让test在中间

      7.bytes()转换成bytes类型,方便传输

      8.bytearray() 查看bytes的字节数,方便更改字符。

      9.memoryview()同上可以输出多个字符

      10.ord()字符转成unicode格式

      11.chr()数字按照unicode格式转成字符

      12.ascii()是否在ascii编码里,在就打印他的ascii,不在输出\u

      13.repr()格式化输出,连引号也输出。

      数据集合:

      14.dict()字典类型

      15.set()集合类型

      16.frozenset()不可变集合类型

      相关内置函数:

      17.len()长度

      18.enumerate()枚举  for循环打印,指定两个值,可以指定从1开始。for k,j in enumerate(l,1):print(k,j)

      19.all()判断是否有bool值为False的值,有一个则为False

      20.any()判断是否有bool值为True的值,有一个则为True

      21.zip()拉链,把两个列表或元组结合成一个迭代器。[(1, 'a'), (2, 'b'), (3, 'c')]

      22.filter()执行了之后的结果集合,只管筛选,不会改变原来的值。

      23.map()执行前后元素个数不变,值可能发生改变。

      24.sorted()排序,可以按指定KEY(绝对值)

匿名函数:

    lambda:

     计算x+y

s = lambda x,y:x+y
print(s(1,2))

    取出字典里最大值

dic={'k1':10,'k2':100,'k3':30}
s = min(dic,key=lambda s:dic[s])
print(s)

    现有两元组(('a'),('b')),(('c'),('d')),
    请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

ret = zip((('a'),('b')),(('c'),('d')))
res = (map(lambda tup:{tup[0]:tup[1]},ret))
print(list(res))

    列表推导式和生成器推导式区别

def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])

def multipliers():
    return (lambda x:i*x for i in range(4))
print([m(2) for m in multipliers()])

    第一个结果:[6,6,6,6] 第二个结果:[0,2,4,6]

    列表推导式是for循环执行完了,最后的i固定为3了,生成器推导式让for循环正常运行得到的结果。

posted @ 2018-01-04 19:12  2009_boy  阅读(146)  评论(0编辑  收藏  举报