容器數據類型特性總結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]

        

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