笔试准备
如何打乱一个列表 1234from random import shufflelists = range(10)shuffle(lists) py变量名称是区分大小写的 py中的闭包 123456def a(x): def b(a): print("hhhh") a +=1 return return b(x)
React 面试题 & 回答
MVC、MVP、MVVM模式的概念与区别React 面试题 & 回答
nvm
nvm 使用ice-飞冰 ice-github nvm-windows 下载地址tar -zxvf nvm.tar.gzecho “source ~/nvm/nvm.sh” >> ~/.bashrcsource ~/.bashrcnvm ls https://www.cnblogs.com/sk777/p/15424305.html
Pandas 概览
Pandas 概览Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。 Pandas 适用于处理以下类型的数据: 与 SQL 或 Excel 表类似的,含异构列的表格数据; 有序和无序(非固定频率)的时间序列数据; 带行列标签的矩阵数据,包括同构或异构型数据; 任意其它形式的观测、统计数据集, 数据转入 Pandas 数据结构时不必事先标记。 Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。对于 R 用户,DataFrame 提供了比 R 语言 data.frame 更丰富的功能。Pandas 基于 NumPy 开发,可以与其它第三方科学计算支持库完美集成。 Pandas 就像一把万能瑞士军 ...
迭代器和生成器
可迭代对象 作用:迭代器节省内存 定义可迭代协议 凡是可迭代的内部都有一个__iter__方法; 迭代器协议 迭代器里既有iter方法,又有next方法,通过iter(o)得到的结果就是一个迭代器 如何判断123456789from collections import Iterablefrom collections import Iteratora = range(100)print(isinstance(a,Iterable)) # 可迭代(只有__iter__()方法)print(isinstance(a,Iterator)) # 迭代器(既有__iter__()方法,也有__next__()方法)'''TrueFalse''' 生成器生成器函数: 常规函数定义,但是,使用yield语句而不是return语句返回结果。yield语句一次返回一个结果,在每个结果中间,挂起函数的状态,以便下次重它离开的地方继续执行 生成器表达式: 类似于列表推导,但是,生成器返回按需产生结果的一个对象,而不是一次构建一个结果 ...
闭包
闭包 闭 内部的函数 包 包含了对外部函数作用域中变量的引用 判断闭包函数的方法__closure__ 输出的__closure__有cell元素:是闭包函数输出的__closure__为None:不是闭包函数 闭包的作用: 就是能够引用外部函数的变量,并且可以保证外部函数的变量控制在一个局部作用域中 12345678910111213#闭包嵌套def wrapper(): money = 1000 def func(): name = 'eva' def inner(): print(name,money) return inner return func j = wrapper()i = j()i() 重要概念命名空间: 一共有三种命名空间从大范围到小范围的顺序:内置命名空间、全局命名空间、局部命名空间 作用域(包括函数的作用域链): 调用时,如果在自己的空间内有,就用自己的。如果没有就使用大范围的。不能从大范围中用小范围的。 函数的嵌套: 嵌套调用 ...
collections 容器数据类型
内置数据类型1234a_dict = dict()a_list = list()a_set = set()a_tuple = tuple() collections模块collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 12345678910111213from collections import namedtuplePoint=namedtuple("Point",["x","y"])d=Point(1,2)print(d.x)print(d.y)Circle=namedtuple("Ciecle",["a","b","r"])c=Circle(1,2,3)print(c.a)print(c.b)print(c.r) 2.deque: 双端队列,可以快速的从另外一侧追加和推 ...
Netflix经典推荐系统架构
Netflix经典推荐系统架构 挑战:架构既能处理海量数据,又能及时响应用户交互 在线层:特点:快速响应,使用最新的数据输入,比如200MS缺点:不能使用复杂的算法,只能读取少量数据 离线层: 特点:大部分计算包括模型训练都在这层完成优点:可采用复杂算法、可扫描海量数据缺点:不能对最新情景和新数据做响应,比如天粒度 近线层:特点:离线和在线的折中,一般将结果存入高速缓存优点:能使用几乎最新数据计算,延迟10秒~1分钟级别优点:允许更复杂的算法处理,加载查询更多数据 组合使用的例子:1、天粒度:离线层做矩阵分解,得到用户向量和物品向量做数据存储MySQL2、10秒钟:近线层根据用户行为,查询TOPN相似的物品列表,存入Cassandra3、200毫秒:在线层查询第2步骤的结果,更新推荐列表 信号和模型 事件和数据分发 参考资料个性化和推荐系统架构Ephemeral Volatile Caching in the cloud
装饰器
装饰器装饰器的本质:闭包函数功能:就是在不改变原函数调用方式的情况下,在这个函数前后加上扩展功能 1234567891011121314def timmer(func): def inner(*args,**kwargs): '''添加函数调用之前的扩展代码''' ret = func(*args,**kwargs) '''添加函数调用之后的扩展代码''' return ret return inner#设计模式 原则 开放封闭原则#对扩展是开放的#对修改是封闭的@timmer #jjj = timmer(jjj) 语法糖def jjj(): return 123
Gunicorn与gevent
依赖安装1pip install gunicorn gevent -i https://pypi.douban.com/simple/ 测试运行程序main.py 123456789101112from fastapi import FastAPIimport uvicornapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"}if __name__ == '__main__': uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)# 启动命令 GunicornGunicorn (‘Green Unicorn’) 是一个 UNIX 下的纯 Python WSGI 服务器。 Gunicorn 启动了被分发到的一个主线程,然 ...