zoukankan      html  css  js  c++  java
  • python匿名函数与bif-第五天

    1.匿名函数(lambda)
    lambda只是一个表达式,函数体比def简单很多。
    lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
    虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

    语法:lambda [arg1 [,arg2,.....argn]]:expression

    exa:
    >>> g = lambda x,y : x + y
    >>> g(3,4)
    7

    好处:使用lambda可以省下定义函数过程,使代码更加精简,不需要考虑命名的问题,简化代码可读性

    2.两个牛逼的bif
    *filter():过滤器

    描述
    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    该函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,
    然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

    语法:filter(function, iterable)
    参数
    function -- 判断函数。
    iterable -- 可迭代对象。

    >>> list(filter(None,[1,0,False,True]))
    [1, True]
    >>> list(filter(lambda x : x % 2,range(10)))
    [1, 3, 5, 7, 9]

    *map() 会根据提供的函数对指定序列做映射。
    第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表

    语法:map(function, iterable, ...)
    参数
    function -- 函数
    iterable -- 一个或多个序列

    >>> list(map(lambda x : x * 2,range(10)))
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

    3.字典
    字典用{}表示
    字典是映射类型,字符串、列表、元组都是序列类型

    >>> dict1 = {'李宁':'一切都有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','鱼C工作室':'让编程改变世界'}
    >>> print('鱼C工作室的口号是:',dict1['鱼C工作室'])
    鱼C工作室的口号是: 让编程改变世界
    >>> dict2 = {1:'one',2:'two',3:'three'}
    >>> dict2[2]
    'two'

    利用元组构成映射关系创建字典
    >>> dict3 = dict((('F',70),('i',105),('s',115),('h',104),('c',67)))
    >>> dict3
    {'F': 70, 'i': 105, 's': 115, 'h': 104, 'c': 67}

    利用关键字参数创建字典(里面的值可以通过key改变,如果字典中没有key,会添加到字典中)
    >>> dict4 = dict(小甲鱼='让编程改变世界',苍井空='让av征服所有宅男')
    >>> dict4
    {'小甲鱼': '让编程改变世界', '苍井空': '让av征服所有宅男'}

    4.字典中的方法
    fromkeys():函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
    语法:dict.fromkeys(seq[, value])
    参数
    seq -- 字典键值列表。
    value -- 可选参数, 设置键序列(seq)对应的值,默认为 None。

    exa:
    >>>seq = ('name', 'age', 'sex')
    >>>dict = dict.fromkeys(seq, 10)
    >>>print ("新的字典为 : %s" % str(dict))
    新的字典为 : {'age': 10, 'name': 10, 'sex': 10}

    get() 函数返回指定键的值。
    语法:dict.get(key, default=None)
    key -- 字典中要查找的键。
    default -- 如果指定的键不存在时,返回该默认值。
    返回指定键的值,如果键不在字典中返回默认值 None 或者指定的默认值。

    exa:
    >>>dict = {'Name': 'Runoob', 'Age': 27}
    >>>print ("Sex 值为 : %s" % dict.get('Sex', "NA"))
    Sex 值为 : NA

    dict.keys():返回一个迭代器,可以使用 list() 来转换为列表
    dict.values():返回一个迭代器,可以使用 list() 来转换为列表
    dict.items():以列表返回可遍历的(键, 值) 元组数组
    dict.clear():删除字典内所有元素
    dict.copy():返回一个字典的浅复制
    dict.pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    dict.popitem():随机返回并删除字典中的最后一对键和值。
    dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
    dict.update(dict2):把字典dict2的键/值对更新到dict里

    exa:
    >>> for eachItem in dict1.items():
    print(eachItem)

    >>> a = {1:'one','小哈':'猴'}
    >>> a
    {1: 'one', '小哈': '猴'}
    >>> b = {'小哈':'狗'}
    >>> a.update(b)
    >>> a
    {1: 'one', '小哈': '狗'}

    5.成员资格操作符(in 和 not in)
    如果键在字典dict里返回true,否则返回false
    exa:
    >>> 31 in dict1
    True

  • 相关阅读:
    JavaScript进阶-BOM和DOM
    JavaScript基础
    CSS2-属性
    CSS1-选择器
    HTML-常用标签
    判断回文
    课堂作业
    动手动脑
    原码反码补码
    Java第一次考试作业
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/14118294.html
Copyright © 2011-2022 走看看