zoukankan      html  css  js  c++  java
  • python 知识

    dict

    • my_dict.setdefault(key, []).append(new_value)

      比如,我们新建了这样一个字典:dd = defaultdict(list),如果键 'new-key' 在 dd 中还不存在的话,表达式 dd['new-key'] 会按照以下的步骤来行事。
      (1) 调用 list() 来建立一个新列表。
      (2) 把这个新列表作为值,'new-key' 作为它的键,放到 dd 中。
      (3) 返回这个列表的引用。

    • 如果你在迭代一个字典的所有键的过程中同 时对字典进行修改,那么这个循环很有可能会跳过一些键——甚至是跳过那些字典中 已经有的键。在 Python 3 中,.keys()、.items() 和 .values() 方法返回的都是字典 视图。也就是说,这些方法返回的值更像集合,而不是像 Python 2 那样返回列 表。视图还有动态的特性,它们可以实时反馈字典的变化。

    坑点1

    
    def add_li(li=[]):
        li.append('END')
        print(li)
    
    if __name__ == '__main__':
        add_li([1, 2, 3])
        # [1, 2, 3, 'END']
        add_li(li=[1, 2, 3])
        # [1, 2, 3, 'END']
        # 上面这些传参都没有问题 ,但是如果这样
    
        add_li()
        # ['END']
        add_li()
        # ['END', 'END']
        
        # 函数在定义的时候,默认参数li的值就计算出来了,[],默认参数也是一个变量,指向对象[],每次调用函数,如果改变了li的内容,那么下次调用的时候,默认参数的内容就变了,不再是定义的[]了
        # 补充:在定义函数的时候只会定义一次,给默认参数分配一个内存地址,对于可变数据,这个内存地址是不可变的
        # Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。
    

    算法不足,产品来凑,产品不足,运营营救

    all / any

    all 和 any 也是内置的归约函数。
    all(iterable)
    如果 iterable 的每个元素都是真值,返回 True;all([]) 返回 True。
    any(iterable)
    只要 iterable 中有元素是真值,就返回 True;any([]) 返回 False。

  • 相关阅读:
    Node_初步了解(4)小爬虫
    JS_高阶函数(map and reduce)
    tabel表格表头固定-标题固定
    js全选 不选 简单写法
    js 对象里 增加、删除一项字段 (把某对象里的数组转换为字符串,重组为新对象)
    手机号验证等汇总
    jq清除该站点的所有cookie
    ajax传参多个冒号 :
    [Vue warn]: Duplicate keys detected: ''. This may cause an update error.
    js的小数位数和保留小数点四位数字等验证
  • 原文地址:https://www.cnblogs.com/beihangxuwei/p/15212534.html
Copyright © 2011-2022 走看看