列表和元組的區別


python基礎

列表和元組的區別

  1. 列表(list)

    列表一旦創建了我們就可以根據自己的需要隨意改變他的內容;

    >>> list=[1,2,3,4,5,6]
    >>> list[0]=8
    >>> list[6]=0
    >>> list
    [8, 2, 3, 4, 5, 6]
    

    可以為列表添加新的數據:

    >>> len(list) #查看這個列表中有多少數據
    6
    >>> list.append(7) #在列表尾插入
    >>> list
    [8, 2, 3, 4, 5, 6, 7]
    >>> len(list)
    7
    >>> list.insert(3,10)  #在列表任意位置插入數據,第一個參數表示索引,第二個參數表示插入的數據
    >>> list
    [8, 2, 3, 10, 4, 5, 6, 7]
    >>> 
    

​ 這是因為list支持resize操作,當有新的數據添加進入列表時,如果大於當前的容量,就會開辟新的list,將原有的元素復制到新的list中,然后將原有的list刪除。

注意 利用切片取得的數據類型還會是list

>>> type(list[:2])
<class 'list'>
  1. 元組(Tuple)

    元組是固定不可變的。這意味着一但元組被聲明,他的內容無法被修改,大小也無法改變。

    >>> tuple=(1,2,3,4)
    >>> tuple
    (1, 2, 3, 4)
    >>> tuple[2]
    3
    >>> tuple[2]=8
    Traceback (most recent call last):
      File "<pyshell#13>", line 1, in <module>
        tuple[2]=8
    TypeError: 'tuple' object does not support item assignment
    

    雖然tuple不支持改變大小,但是我們可以將兩個tuple合並起來。

    >>> t=(5,6,8,6)
    >>> t+tuple
    (5, 6, 8, 6, 1, 2, 3, 4)
    

    與list.append比較list添加元素的時間復雜讀為O(1),而tuple這種方式的時間復雜度為O(n)

  2. 總結

    1. 列表是動態數組,它們不可變且可以重設長度(改變其內部元素的個數)。
    2. 元組是靜態數組,它們不可變,且其內部數據一旦創建便無法改變。
    3. 元組緩存於Python運行時環境,這意味着我們每次使用元組時無須訪問內核去分配內存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM