zoukankan      html  css  js  c++  java
  • '增量赋值(augmented assignment)', 多么痛的领悟!

    '增量赋值(augmented assignment)', 多么痛的领悟!

    深刻理解x += ax = x + a 的不同:

    按理说上面的两条语句是等价的, 功能上完全一样的. 之所以说不同, 那是因为经历了痛苦的领悟之后, 才得出的结论.
    通常在写代码的时候, 按照思维的惯例, 写 x = x + a 与 x += a, 可以完全等价, 当x为一个简单的变量时, 没有关系的. 但是当x为一个复杂的对象, 需要对它的局部/切片做原地修改时, 用增量赋值操作符就显现出优势了, 无论是从编写上还是从易读性上来说.

    比如:
    x = pd.DataFrame();
    x.shape = [2000, 5];
    x.columns = u'date/open/high/low/close/volume/'.split('/')
    我们需要对x的200行之后的行的 close和volume列进行除法运算, 可以这样写:

    x.ix[ 200:, ['close', 'volume']] /= 1.23

    易读也易写!

    较为复杂的切片写一遍已经不易, 如果在右边再写一遍该有多么地痛苦!

    结论: 当需要对变量进行原地修改时, 记住一定要用'增量赋值'操作符.
    善用增量运算符, 提升代码质量!

  • 相关阅读:
    php 异步执行脚本
    微信扫描带参数二维码事件
    windows7搭建wnmp环境
    Windows下安装Redis及php的redis拓展教程
    英语翻译(一维map)
    转圈游戏
    蓝桥杯剪邮票
    再谈组合
    关于inf设置为0x3f3f3f3f
    枚举排列组合(dfs)
  • 原文地址:https://www.cnblogs.com/duan-qs/p/8085845.html
Copyright © 2011-2022 走看看