容器数据类型特性总结18

一,容器、类型、对象

    1.列表元素和字典自变量可以多行输入,没有任何元素时是不可以的;

        例如:   

In [75]: l1 = [1,
   ....: 2,
   ....: 3,
   ....: ]

In [76]: print l1
[1, 2, 3]

    2.所以对象都有引用计数

        分配新名称会增加计数,删除对象引用则会减少计数;

        例如:   

In [78]: name = "black"

In [79]: import sys
sys        sysconfig  syslog     

In [79]: import sys

In [80]: sys.  
sys.api_version            sys.exit                   sys.last_traceback         sys.ps2
sys.argv                   sys.exitfunc               sys.last_type              sys.ps3
sys.builtin_module_names   sys.flags                  sys.last_value             sys.py3kwarning
sys.byteorder              sys.float_info             sys.long_info              sys.setcheckinterval
sys.call_tracing           sys.float_repr_style       sys.maxint                 sys.setdlopenflags
sys.callstats              sys.getcheckinterval       sys.maxsize                sys.setprofile
sys.copyright              sys.getdefaultencoding     sys.maxunicode             sys.setrecursionlimit
sys.displayhook            sys.getdlopenflags         sys.meta_path              sys.settrace
sys.dont_write_bytecode    sys.getfilesystemencoding  sys.modules                sys.stderr
sys.exc_clear              sys.getprofile             sys.path                   sys.stdin
sys.exc_info               sys.getrecursionlimit      sys.path_hooks             sys.stdout
sys.exc_type               sys.getrefcount            sys.path_importer_cache    sys.subversion
sys.excepthook             sys.getsizeof              sys.platform               sys.version
sys.exec_prefix            sys.gettrace               sys.prefix                 sys.version_info
sys.executable             sys.hexversion             sys.ps1                    sys.warnoptions

In [80]: sys.get
sys.getcheckinterval       sys.getfilesystemencoding  sys.getrefcount            
sys.getdefaultencoding     sys.getprofile             sys.getsizeof              
sys.getdlopenflags         sys.getrecursionlimit      sys.gettrace               

In [80]: sys.getre
sys.getrecursionlimit  sys.getrefcount        

In [80]: sys.getrefcount(name)
Out[80]: 2

In [94]: hello="black"

In [95]: sys.getrefcount(name)
Out[95]: 3

In [96]: del(hello)    //删除对象引用减少计数

In [97]: sys.getrefcount(name)
Out[97]: 2

    3.列表和字典都支持两种类型的复制操作

        浅复制:创建一个新对象,包含的原来的对象引用,指向的是同一个位置;

        深复制:创建一个新对象,递归复制原来包含的所有对象;

            深复制可使用copy模块中的deepcopy()实现。

    4.Python中的所以对象都是“第一类的”

        这意味着使用标识符命名的所有对象都具有相同状态,于是,能够命名所以对象都可以直接当数据进行处理。

        例如:

In [6]: a = 4.0

In [7]: b = 3

In [8]: a / b
Out[8]: 1.3333333333333333

In [9]: a // b
Out[9]: 1.0

    5.所有序列都支持迭代

        序列是索引为非负整数的有序对象的集合;

        序列可以修改,支持原处的插入、替换、删除等操作;

        字串和元组不支持原处修改,但序列和元组能包含任意的Python对象序列(容器的特性);

    6.所有序列都支持的操作

        s[i]

        s[i:j]

        s[i:j:stride]

        len(s)

        max(s)

        min(s)

        sum(s)

        all(s)

        any(s)

        s1 + s2 : 连接

        s1 * N : 重复

        obj in s1 :成员关系判断

        obj not in s

    7.可变序列的操作,操作本身

        s1[index] = value :元素赋值

        s1[i:j] = t :切片赋值

        del s1[index]

        del s1[i:j]

        del s1[i:j:stride]

        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章