Python 中的列表與字典

Manav Narula 2023年1月30日
  1. Python 中基於結構的列表與字典
  2. Python 中基於訪問元素的列表與字典
  3. Python 中基於時間的列表與字典
  4. Python 中基於操作的列表與字典
  5. まとめ
Python 中的列表與字典

字典和列表有很多相似之處,都以 JSON 格式使用。我們可以使用這兩個物件相對輕鬆地儲存和訪問元素。

字典和列表都是可變的,這意味著我們可以隨著程式碼的進行更改它們並更新元素。這不是一個通用屬性,因為像元組這樣的其他物件在 Python 中是不可變的。

本教程將解釋 Python 中列表和字典之間的區別。這對於確定在不同情況下使用哪個物件很有用。

Python 中基於結構的列表與字典

第一個區別與元素的儲存方式有關 - 列表將元素儲存為具有類似陣列結構的集合。

這些元素可以是任何型別,並且可以在列表中混合使用不同的元素型別。要建立列表,我們使用方括號 []

但是,字典將元素儲存為鍵值對,每個元素都有一個關聯的鍵。

鍵可以訪問列表中的給定元素。花括號 {} 用於在 Python 中建立字典。

例子:

l = [1, 8, 9, 5, 2]
d = {"a": 1, "b": 8, "c": 9, "d": 5, "e": 2}
print(l, "\n", d)

輸出:

[1, 8, 9, 5, 2]
 {'a': 1, 'b': 8, 'c': 9, 'd': 5, 'e': 2}

列表也可以儲存重複的元素,而在字典中,每個鍵都應該是唯一的。

Python 中基於訪問元素的列表與字典

元素以給定的順序儲存在列表中,並具有特定的索引。我們使用索引在列表中訪問它們。

字典曾經是一個無序的集合。但是,在 Python 3.6 中進行了一些更改,並且在某種程度上將順序保留在字典中。

要訪問元素,我們使用它們關聯的鍵。

請參閱下面的程式碼。

l = [1, 8, 9, 5, 2]
d = {"a": 1, "b": 8, "c": 9, "d": 5, "e": 2}
print(l[4], d["b"])

輸出:

2 8

上面的示例演示瞭如何在列表和字典中訪問元素。

Python 中基於時間的列表與字典

訪問它們之間的元素時所需的時間和空間也存在差異。在這種情況下,字典效率更高。

字典將元素儲存在雜湊表中,鍵對映到不同的元素。因此,無需任何時空權衡即可訪問它們。

遍歷整個列表來訪問任何元素,因此通常會佔用更多的時間和空間。當我們使用大型資料集時,這一點更加明顯。

在選擇兩者之一之前,應仔細考慮時間和空間。

Python 中基於操作的列表與字典

幾個常見的操作可以有效地應用於列表。list 類具有不同的功能,例如 max()min()len() 等等。

我們還可以使用 for 迴圈輕鬆遍歷列表。其他可變物件操作,如 delappend()insert() 等也可用於列表。

主要是,字典用它們的鍵儲存和對映元素,所以它沒有很多相關的操作。但是,dict 類是其他類字典物件的子類,例如 UnorderedDictdefaultdict

我們將在下面的程式碼中使用其中的一些。

from collections import defaultdict

l = [1, 8, 9, 5, 2]
d = defaultdict()
d["a"] = 1
d["c"] = 3
d["e"] = 5
print(max(l), len(l))
print(d)

輸出:

9 5
defaultdict(None, {'a': 1, 'c': 3, 'e': 5})

我們在上面的例子中找到了字串的最大元素和長度。此外,我們使用了 collections 模組中的 defaultdict 類。

まとめ

當我們希望以特定順序儲存資料並對元素執行不同的類似陣列的操作時,列表是有利的。字典對於儲存大量資料且易於訪問和對映雜湊表中的元素非常有用。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python List

相關文章 - Python Dictionary