[2015-07-30] python011

容器数据类型特性总结

  • 列表、元素和字典字面量,可以在不使用续行符的情况下,写在多行上,最后一个元素后可加逗号,但空元素后不能有逗号
  • 所有对象都有引用计数
    • 指定新名称或放入新容器中时,会导致引用计数增加,当引用计数为0时,垃圾回收器会回收该对象
    • 使用del()删除对象的引用时,会减少对象的引用计数
    • 使用sys模块的sys.getrefcount()方法可查看引用计数
  • 列表和字典都支持两种类型的复制操作:浅复制和深复制
    • 浅复制会创建一个新对象,对象中存储的是指向原对象的引用,原对象改变,新对象也改变,如l2 = l1
    • 深复制会创建一个新对象,并递归复制原对象中每个元素,原对象改变,新对象不变
    • 深复制可使用copy模块中的deepcopy()实现
  • Python中的所有对象都是“第一类”,这意味着使用标识符命名的所有对象都有相同状态,于是,能够命名的所有对象都可以直接当数据进行处理
  • 所有序列都支持迭代
  • 所有序列都支持的操作和方法:
    s[i]
    s[i:j]
    s[i:j:stride]
    len(s)
    min(s)
    max(s)
    sum(s)
    all(s)
    any(s)
    s1 + s2 : 连接
    s1 * N : 重复
    obj in s1 :成员关系判断
    obj not in s1
  • 可变序列的操作:
    元素赋值
    —–s1[index] = value
    切片赋值
    —–s1[i:j] = t
    删除指定元素
    —–del s1[index]
    删除切片
    —–del s1[i:j]
    删除扩展切片
    —–del s1[i:j:stride]

Python的表达式和语句

表达式 :

1个或多个操作数,0个或多个操作符组成的序列

语句 :

  • 变量声明语句
  • 赋值语句
  • 调用语句
  • 控制语句
    • 循环
    • 条件判断

Python中的常用的表达式操作符 :

算术运算
    x + y , x - y
    x * y , x / y , x // y , x % y
逻辑运算
    x or y
    x and y
    not x
成员关系运算
    x in y
    x not in y 
对象实例测试
    x is y
    x not is y 
比较运算
    x < y
    x > y
    x <= y
    x >= y
    x == y
    x != y
按位运算
    x | y
    x & y 
    x ^ y
    x << y
    x >> y
一元运算
    -x
    +x 
    ~x 
幂运算
    x ** y
索引和分片
    x[i]
    x[i:j]
    x[i:j:stride]
调用
    x(...)
取属性
    x.attribute
元组: (...)
序列: [...]
字典: {...}

三元选择表达式
    x if y else z 
匿名函数
    lambda args: expression
生成器函数发送协议
    yield x 

运算优先级 :

    (...),[...],{...}
    s[i],s[i:j]
    s.attribute 
    s(...)
    +x , -x , ~x 
    x ** y 
    * , / , // , %
    + , -
    << , >>
    &
    ^
    |
    < , <= , > , >= , == , !=
    is , not is 
    in , not in 
    not 
    and 
    or 
    lambda 

常用语句 :

    赋值语句 
    调用语句
    print:打印对象
    if/elif/else : 条件判断 
    for/else: 序列迭代
    while/else : 普通循环
    pass: 占位符
    break
    continue
    def
    return 
    yield 
    global : 命名空间
    raise : 触发异常
    import : 模块导入
    from : 模块属性访问
    class : 类
    try/except/finally : 捕捉异常
    del : 删除引用
    assert : 调试检查
    with/as : 环境管理器

赋值语句 :

    变量名引用前必须先赋值
    隐性赋值:
        import, from, def, class, for, 函数参数
    元组和列表支持分解赋值:
        当赋值符号(=)的左侧为元组或列表时,Python会按照位置把右边的对象和左边的目标自左而右逐一进行配对
        个数不同时,会触发异常,此时可以切片的方式进行
    多重目标赋值:
        num1 = num2 = num3 = 44
    增强赋值:
        +=, -=, *=, /=, //=, %=
        增强赋值执行效率很高,建议使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章