satyrs

yuqing

  • home
  • leetcode
  • bilibili
  • categories
articles links about me
总字数 168.3k

satyrs

yuqing

  • home
  • leetcode
  • bilibili
  • categories

python

2021-04-05
字数:987字 | 预计阅读时长:3分钟

语言、语法糖相关

  • python2 3 区别

    • map filter,由function变为class,前者返回列表,后者为object

    • print由命令变为函数

    • 编码由ASCII变为utf8

    • xrange

      • 要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
      • range创建列表,xrange是生成器
      • 3只保留了生成器的方式并命名为range
    • 除法 1/2 = 0 0.5

  • 滑动窗口算法

    • 单调栈
    • https://leetcode-cn.com/problems/sliding-window-maximum/
  • abc

    • 注解abstractmethod,抽象基类
  • 标记清除

    • 对执行删除(-1)后的每个引用-1,为0的放到死亡容器,否则放到存活容器
    • 循环存活容器,复活死亡中的变量放到存活容器内
    • 删除死亡容器内的所有对象
  • 分代

    • 新创建的对象做为0代。每执行一个【标记-删除】,存活的对象代数就+1
    • 代数越高的对象(存活越持久的对象),进行【标记-删除】的时间间隔就越长
    • 一个对象10次检测都没给它干掉, 就认定这个对象一定很长寿, 就减少这货的”检测频率”
  • 触发垃圾回收

    • 调用gc.collect()
    • GC达到阀值时
    • 程序退出时
  • intern机制

  • copy deepcopy

    • 复制的值是不可变对象(数值,字符串,元组),对象的id值与等式左边的id值相同。
    • 复制的值是可变对象(列表和字典)
      • 浅拷贝两种情况:
        • 复制的 对象中无 复杂 子对象,浅复制的值改变也并不会影响原来的值反之也不影响
        • 复制的对象中有 复杂 子对象, 改变原来的值 中的复杂子对象的值 ,会影响浅复制的值
  • cookie和session

    • session 在服务器端,cookie 在客户端(浏览器)
    • session id 是存在 cookie 中
    • 浏览器禁用了 cookie ,同时 session 也会失效
    • cookie安全性比session差
  • 正则

    • 正则表达式匹配中,(.)和(.?)匹配区别?
      • 贪婪、非贪婪
    • 正则re.complie
      • re.compile是将正则表达式编译成一个对象,加快速度,并重复使用
  • 动态类型dynamic typing

    • 将string传入mod,compilier并不会报错,仍然是原来compile出来的步骤。
    • mod(“%s%s”, (“py”,”thon”) )结果将是python,在c中,遇到BINARY_MOULO指令操作,如果是string类型则直接调用PyString_Format()。
  • 一切发生在运行时、命名空间。

    • 命名空间分模块、类、方法。

    • 编译只是从将代码在运行时转成成code object,当执行时转成function object。

    • def是一个assignment function(将return 的结果assign给变量),遇到def 的时候实则就是call这个function并对参数进行assign。

    • 类在创建时就开始执行,在一个字典所表示的命名空间中执行。这个命名空间用来创建类对象。

    • 都是 对象/引用。变量只是名称,不是容器。字典中将名称映射到对象上。

    • 三个scopes,local,global:module,builtin

    • not pthon object hooks:1,赋值,赋值将改变命名空间,而非对象自身 2,类型检查 3,is运算 4,and or not 都是布尔运算 5,调用,需要实现getattr来返回属性对象,该属性对象在call时执行某方法

    • 如果要对object 移动,需要delete并清楚所有的references。

    • 弱引用是当object删除之后被通知,即callback。

    • 互相引用的reference cycle–>需要cycle gc

  • Cython PyPy

    • Cpython中,PyObject都是以struct实现,包含type pointer、reference counting或其他C type。PyType struct有对type的一些描述信息。
  • 常用到的文本提取,任意字符串

    • .* .*?
  • 编译 解释

    • compiler部分很少,interpreter工作量远远多。
    • Python interpreter是一个virtual machine(模拟物理机),是个stack machine(操作stacks),和register machine(从内存不同位置读写)不同。
    • 且是byte interpreter,input是instruction sets,元素为byte codes,lexing&parsing将python codes 转为byte codes。相当于C codes和assembly codes。
本文作者: yuqing wang
本文链接: https://satyrswang.github.io/2021/04/05/python/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
赏

thanks for tips

支付宝
微信
  • 编程语言
  • python
  • 编程语言
  • python

扫一扫,分享到微信

微信分享二维码
spark
贝叶斯网络
© 2023 yuqing wang
Hexo Theme Yilia by Litten
  • articles
  • links
  • about me

tag:

  • 随笔
  • 算法
  • ml
  • 编程语言
  • python
  • dl
  • 金融经济
  • tensorflow源码
  • 工程
  • spring
  • c++
  • 论文
  • gpu
  • cuda
  • 训诫
  • dubbo
  • es
  • 流处理
  • 大数据
  • java
  • 并发
  • 英文积累
  • linux
  • mac
  • cheetsheet
  • 数据库
  • 索引
  • redis
  • 金融
  • 读后感
  • 分布式
  • 推荐系统
  • 方法论
  • 股市理论
  • 模型框架
  • 计算机
  • leetcode
  • 英文写作
  • 货银
  • 货币政策
  • 商业银行
  • 零散知识点
  • 破站
  • ky

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • github
  • jianshu
  • cnblogs
  • bilibili
  • youtube
  • uva
关心算法、cs、网络、投资, 闲听历史、看史评 wechat satyrsh