Python中list、tuple、dict 區別

來源:互聯網
上載者:User
Python中list、tuple、dict區別

(2010-11-02 22:35:54)
     Dictionary 是 Python 的內建資料類型之一,它定義了鍵和值之間一對一的關係。(用花括弧)

  1. 每一個元素都是一個 key-value 對, 整個元素集合用大括弧括起來
  2. 您可以通過 key 來引用其值, 但是不能通過值擷取 key
  3. 在一個 dictionary 中不能有重複的 key。給一個存在的 key 賦值會覆蓋原有的值。 在任何時候都可以加入新的key-value 對。這種文法同修改存在的值是一樣的。
  4. 當使用 dictionary 時, 您需要知道: dictionary 的 key 是大小寫敏感的
  5. Dictionary 不只是用於儲存字串。Dictionary 的值可以是任意資料類型, 包括字串, 整數, 對象,甚至其它的 dictionary。在單個 dictionary 裡, dictionary 的值並不需要全都是同一資料類型,可以根據需要混用和匹配。
    Dictionary 的 key要嚴格多了, 但是它們可以是字串, 整數和幾種其它的類型 (後面還會談到這一點) 。也可以在一個 dictionary
    中混用和配匹key 的資料類型
  6. del 允許您使用 key 從一個 dictionary 中刪除獨立的元素。
  7. clear 從一個 dictionary 中清除所有元素。注意空的花括弧{}集合表示一個沒有元素的dictionary。


  1. list是一個使用方括弧括起來的有序元素集合。
  2. List 可以作為以 0 下標開始的數組。任何一個非空 list 的第一個元素總是 li[0]
  3. 負數索引從 list 的尾部開始向前計數來存取元素。任何一個非空的 list 最後一個元素總是li[-1]。
    如果負數索引使您感到糊塗,可以這樣理解:
    li[-n] == li[len(li) - n]。 所以在這個 list 裡,li[-3] == li[5 - 3] == li[2]。
  4. 您可以通過指定 2 個索引得到 list 的子集, 叫做一個 “slice”。傳回值是一個新的 list, 它包含了 list 中按順序從第一個 slice 索引 (這裡為 li[1]) 開始,直到但是不包括第二個 slice 索引 (這裡為
    li[3]) 的所有元素。
  5. 如果將兩個分區索引全部省略, 這將包括 list 的所有元素。但是與原始的名為 li 的 list 不同,它是一個新 list, 恰好擁有與
    li 一樣的全部元素。li[:] 是產生一個 list完全拷貝的一個簡寫。
  6.  append 向 list的末尾追加單個元素。
  7. insert 將單個元素插入到 list 中。數值參數是插入點的索引。請注意, list 中的元素不必唯一,有有兩個獨立的元素具有
    'new' 這個相同的值。
  8.  extend 用來串連 list。請注意不要使用多個參數來調用extend, 要使用一個 list 參數進行調用。
  9. Lists 的兩個方法 extend 和 append 看起來類似, 但實際上完全不同。extend 接受一個參數, 這個參數總是一個 list, 並且添加這個 list 中的每個元素到原 list中
  10. 另一方面, append 接受一個參數, 這個參數可以是任何資料類型, 並且簡單地追加到 list 的尾部。在這裡使用一個含有 3 個元素的 list 參數調用
    append 方法。
  11. index 在 list 中尋找一個值的首次出現並返回索引值。
  12. 要測試一個值是否在 list 內, 使用 in, 如果值存在, 它返回
    True,否則返為 False 。
  13. remove 從 list 中刪除一個值的首次出現。
  14. pop 是一個有趣的東西。它會做兩件事: 刪除 list 的最後一個元素, 然後返回刪除元素的值。請注意,這與
    li[-1] 不同, 後者返回一個值但不改變 list 本身。也不同於li.remove(value), 後者改變 list 但並不傳回值。
  15. Lists 也可以用 + 運算子串連起來。 list =
    list + otherlist 相當於list.extend(otherlist)。 但
    + 運算子把一個新(串連後) 的 list 作為值返回, 而 extend 只修改存在的 list。 也就是說, 對於大型 list來說,
    extend 的執行速度要快一些。
  16.  Python 支援
    += 運算子。li += ['two'] 等同於 li.extend(['two'])。 +=運算子可用於 list, 字串和整數, 並且它也可以被重載用於使用者自訂的類中。
  17. * 運算子可以作為一個重複器作用於 list。 li = [1, 2] * 3 等同於li = [1, 2] + [1, 2] + [1, 2], 即將三個 list 串連成一個。


  1. Tuple 是不可變 list。 一旦建立了一個 tuple 就不能以任何方式改變它。
  2. 定義 tuple 與定義 list 的方式相同, 除了整個元素集是用小括弧包圍的而不是方括弧。
  3.  Tuple 的元素與 list 一樣按定義的次序進行排序。 Tuples 的索引與list 一樣從 0 開始, 所以一個非空 tuple 的第一個元素總是
    t[0]。
  4.  負數索引與 list 一樣從 tuple 的尾部開始計數。
  5.  與 list 一樣分區 (slice) 也可以使用。注意當分割一個 list 時,會得到一個新的 list ;當分割一個 tuple 時, 會得到一個新的 tuple。
  6. Tuple 沒有方法:沒有append 或
    extend 方法、沒有remove 或
    pop 方法、沒有index 方法、可以使用in 來查看一個元素是否存在於 tuple 中。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.