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

    易读也易写!

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

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

  • 相关阅读:
    Oracle数据库备份与恢复的三种方法
    mybatis内置类型
    mybatis中#{}和${}的区别
    Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
    java web简单权限管理设计
    Flask总结篇
    Django总结篇
    API总结
    实战小练习
    数据操作
  • 原文地址:https://www.cnblogs.com/duan-qs/p/8085845.html
Copyright © 2011-2022 走看看