• Python进阶:set和dict/对象引用、可变性和垃圾回收/元类编程/迭代器和生成器


    frozenset:不可变集合,无序,不重复

    dict上的特性:

    1. dict的key或者set的值 都必须是可以hash的(不可变对象 都是可hash的, str, fronzenset, tuple,自己实现的类 __hash__)
    2. dict的内存花销大,但是查询速度快, 自定义的对象 或者python内部的对象都是用dict包装的
    3. dict的存储顺序和元素添加顺序有关
    4. 添加数据有可能改变已有数据的顺序

     is和==的区别:is是用来判断两个变量引用的对象是否为同一个,==用来判断应用的对象的值是否是相等。(可以理解为对象的值和地址的异同 )

    元类:元类是创建类的类,对象<-class(对象)<-type

    迭代器:访问集合内元素的一种方式,一般用来遍历数据,和下标访问方式不同,迭代器不能返回,一种惰性方式数据的方式

    生成器:函数里只要有yield

    生成器方式求斐波那契数列:

    def fib(index):
        re_list = []
        n, a, b = 0, 0, 1
        while n < index:
            re_list.append(b)
            a, b = b, a+b
            n += 1
        return re_list
    
    # 生成器求解
    def gen_fib(index):
        n, a, b = 0, 0, 1
        while n < index:
            yield b
            a, b = b, a+b
            n += 1
    
    
    print(fib(10))
    
    for data in gen_fib(20):
        print(data)
    

      

  • 相关阅读:
    ORDER BY子句
    SELECT子句
    WHERE子句
    定义数据完整性
    Microsoft Visual Studio Tips
    zz人性的经典总结54句
    About Refactor
    zz你的交际力能否通吃?
    zz一个高级主管必须明白的几点事情
    About SQLServer Transaction
  • 原文地址:https://www.cnblogs.com/darklights/p/11740339.html
Copyright © 2020-2023  润新知