zoukankan      html  css  js  c++  java
  • 4-1 内置函数和匿名函数

     一 内置函数

    1 输出 print

    print(1,2,3,4,5,sep=';',end='| ') ##sep是以;分开每个数字,end是以|结尾的

    2 查看内置属性

    ##dir查看某对象的属性及其方法

    # import os

    # print(dir(os))

    3 数学相关运算的

    3.1 abs 计算绝对值

    # print(abs(-9))

    3.2 divmod 可以返回商和余数

    # print(divmod(9,4))

    3.3 round 小数精确

    # print(round(3.1415926,3)) #逗号后面可以指定保留几位小数,并且会四舍五入

    3.4 pow 幂运算

    # print(pow(2,3,5)) #(2**3)%3 就是2的三次方,对5取余

    3.5 sum 求和

    # print(sum ([1,2,3,4]))

    # print(sum(range(1,10)))

    #print(sum([1,2,3,4,5],10))  ##1到5求完和之后,然后再加10,不加默认是0

    3.6 max求最大值(重要)

    print(max(1,2,3,6))

    print(max(range(1,10)))

    3.7min 求最小值(重要)

    1 # print(min(-1,0,3,4))
    2 
    3 # print(min(-1,0,3,4,key=abs)) ##算完绝对值之后,在返回最小值
    4 
    5 # def func(num):
    6 
    7 # return num%2
    8 
    9 # print(min(-2,3,-4,key=func))

    3.8 反序

     1 ##reverse  ##直接返回结果
     2 
     3 # ret = [1,2,3,4,5]
     4 
     5 # ret.reverse()
     6 
     7 # print(ret)
     8 
     9 
    10 #reversed  ##返回一个可迭代对象
    11 
    12 # ret1 = reversed(ret)
    13 
    14 # ret2 = reversed((1,2,3,4,5))
    15 
    16 # print(ret)
    17 
    18 # print(list(ret1))

    4 字符串相关的

    1 # eval和exec
    2 
    3 # eval('print(123)')
    4 
    5 # exec('print(123)')
    6 
    7 # print(eval('1+2-3*20/(2+3)'))##有返回值
    8 
    9 # print(exec('1+2-3*20/(2+3)')) ##执行了但没有返回值

    5 format格式化显示

    #字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐

    # print(format('test', '<20'))

    # # print(format('test', '>20'))

    # print(format('test', '^20'))

    6##ord 字符串按照unicode转数字

    # print(ord('a'))

    7#chr数字按照unicode转字符

    # print(chr(97))

    8##repr用于%r格式化输出

    # print(repr(1))

    # print(repr('1'))

    9 enumerate 枚举

     1 # ll=['a','b','c']
     2 
     3 # for i in ll:
     4 
     5 # print(ll.index(i),i)
     6 
     7 第二种写法
     8 
     9 # for i,v in enumerate(ll):
    10 
    11 # print(i,v)

    10 zip返回一个迭代器,拉链就是按顺序让其一一对应

    
    
    ret = zip([1, 2, 3, 4, 5], ('a', 'b', 'c', 'd'), (4, 5,0))  # 拉链方法

    print(ret)

    for i in ret:
    print(i)
     

    11filter 重要  用于过滤,比如大于几的数字,或者偶数,奇数之类的

    
    
    lst = [1, 4, 6, 7, 9, 12, 17]
    def func(num):
    if num % 2 == 0: return True

    filter(func, lst) ##分别把lst里面的值传给num,然后取出除2等于0的数字

    for i in filter(func, lst):

    print(i)


    ##第二种方法
    g = (i for i in lst if i%2 == 0)
    for i in g:
    print(i)
     

    12map 求1到10的平方 重要  主要用于计算

    
    
    def func(num):

    return num**2
    for i in map(func,range(10)):

    print(i)
     

    13 排序

    ##sort 排序(这个只是个方法,不是函数)

    1 # l = [1,-4,-2,3,-5,6,5]
    2 
    3 # l.sort(key=abs) ##按照绝对值来排序的
    4 
    5 # print(l)
    打印结果是
    [1, -2, 3, -4, -5, 5, 6]

    ##sorted排序(重要)

    1 # l = [1,-4,-2,3,-5,6,5]
    2 
    3 # new_l = sorted(l,key=abs,reverse=True) ##按照绝对值,并且反序来排序的
    4 
    5 # print(new_l)
    打印结果是
    [6, -5, 5, -4, 3, -2, 1]

     二 匿名函数(lambda)

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

     1 #普通函数写法:
     2 def calc(n):
     3     return n**n
     4 print(calc(2))
     5 
     6 
     7 #换成匿名函数
     8 calc = lambda n:n**n
     9 print(calc(2))
    10 
    11 打印结果都是4

    匿名函数格式

    函数名 = lambda 参数 :返回值
    
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型

    2.1例子
     1 ##第一种普通函数写法:
     2 # def func(num):
     3 #      return num ** 2
     4 #
     5 # for i in map(func,range(10)):print(i)
     6 
     7 
     8 ##第二种写法:匿名函数
     9 
    10 # for i in map(lambda num : num ** 2 ,range(10)):print i
    11 
    12 
    13 ##打印结果是0-9,9个数字的平方
    #例子
    现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

    第一种写法:普通函数
    # def func(t):
    #     return {t[0]:t[1]}
    # ret = map(func,zip((('a'),('b')),(('c'),('d'))))
    # print(list(ret))
    
    ##第二种写法:匿名函数
    # ret = map(lambda t:{t[0]:t[1]},zip((('a'),('b')),(('c'),('d'))))
    # print(list(ret))



     

     

  • 相关阅读:
    【大数据应用技术】作业十二|Hadoop综合大作业
    【大数据应用技术】作业十一|分布式并行计算MapReduce
    【大数据应用技术】作业十|分布式文件系统HDFS 练习
    【大数据应用技术】作业九|安装关系型数据库MySQL 安装大数据处理框架Hadoop
    【大数据应用技术】作业八|爬虫综合大作业(上)
    【大数据应用技术】作业七|爬取全部的校园新闻
    【大数据应用技术】作业六|获取一篇新闻的全部信息
    【大数据应用技术】作业五|理解爬虫原理
    【大数据应用技术】作业四|中文词频统计
    大数据应用期末总作业
  • 原文地址:https://www.cnblogs.com/huningfei/p/8931518.html
Copyright © 2011-2022 走看看