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)