Python 中的列表和字典是用於存儲數據的內置數據結構。列表本質上是線性的,而字典將數據存儲在鍵值對中。在這篇文章中,我們將看到兩者之間的區別。
Python 中的列表
列表就像用其他語言聲明的數組一樣。列表不必總是同質的,這使得它成為 Python 中最強大的工具。單個列表可能包含整數等數據類型,弦樂,以及對象。列表是可變的,因此,即使在它們創建之後也是如此。
例子:在此示例中,我們將了解如何創建簡單列表以及多維列表Python並使用列表索引訪問其值。
Python3
# Python program to demonstrate
# Lists
# Creating a List with
# the use of multiple values
List = ["Geeks", "For", "Geeks"]
print("List containing multiple values: ")
print(List[0])
print(List[2])
# Creating a Multi-Dimensional List
# (By Nesting a list inside a List)
List = [['Geeks', 'For'] , ['Geeks']]
print("\nMulti-Dimensional List: ")
print(List)
輸出:
List containing multiple values:
Geeks
Geeks
Multi-Dimensional List:
[['Geeks', 'For'], ['Geeks']]
Python 中的字典
Python字典另一方麵是數據值的無序集合,用於像映射一樣存儲數據值,與其他僅保存單個值作為元素的數據類型不同,Dictionary 保存一個核心值一對。字典中提供了Key-value,使其更加優化。每個字典中的鍵值對用冒號分隔(:)而每個鍵都由 ‘comma’ 分隔。
例子:在此示例中,我們將了解如何創建具有相似鍵類型的簡單字典以及具有混合鍵類型的字典。
Python3
# Creating a Dictionary
# with Integer Keys
Dict = {1: 'Geeks', 2: 'For', 3: 'Geeks'}
print("Dictionary with the use of Integer Keys: ")
print(Dict)
# Creating a Dictionary
# with Mixed keys
Dict = {'Name': 'Geeks', 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
print(Dict)
輸出:
Dictionary with the use of Integer Keys:
{1: 'Geeks', 2: 'For', 3: 'Geeks'}
Dictionary with the use of Mixed Keys:
{1: [1, 2, 3, 4], 'Name': 'Geeks'}
列表和字典之間的區別
下表顯示了 Python 中列表和字典之間的一些區別:
List |
字典 |
---|---|
列表是索引值對的集合,類似於 C++ 中的數組。 |
字典是一個哈希結構鍵和值 對。 |
該列表是通過將元素放入[ ]以逗號分隔“,” |
字典是通過將元素放入{ }如“key”:”value”,每個鍵值對之間用逗號“,”分隔 |
列表的索引是從 0 開始的整數。 |
字典的鍵可以是任何數據類型。 |
通過索引訪問元素。 |
通過鍵值對訪問元素。 |
輸入元素的順序保持不變。 |
無法保證維持秩序。 |
列表是有序的、可變的,並且可以包含重複的值。 | 字典是無序且可變的,但它們不能包含重複的鍵。 |
Space-Time 列表和字典之間的權衡
使用字典來查找元素的效率更高,因為與列表相比,在字典中遍曆所需的時間更少。
讓我們考慮一個機器學習模型中包含 5000000 個元素的數據集,該模型依賴於數據檢索的速度。為了實現這一點,我們必須在兩種數據結構(即列表和字典)之間做出明智的選擇。字典是首選,因為字典在 Python 3.6 中以哈希表的形式實現,因此它的時間和空間存儲更少,因此它永遠不是字典中的 space-time 權衡問題。
示例 1:在此示例中,我們將迭代整個列表和字典,看看哪個更有效且迭代時間更少。
Python3
# To calculate the time difference
import time
# Creating a dictionary
d ={'john':1, 'alex':2}
x = time.time()
# Accessing elements
print("Accessing dictionary elements:")
for key in d:
print(d[key], end=" ")
y = time.time()
print("\nTime taken by dictionary:", y-x)
# Creating a List
c =[1, 2]
x = time.time()
print("\nAccessing List elements:")
for i in c:
print(i, end=" ")
y = time.time()
print("\nTime taken by dictionary:", y-x)
輸出:
Accessing dictionary elements:
1 2
Time taken by dictionary: 1.0013580322265625e-05
Accessing List elements:
1 2
Time taken by dictionary: 3.5762786865234375e-06
示例 2:
在這個例子中,我們將看到在 Python 中從列表或字典中獲取特定元素需要花費多少時間。與字典相比,獲取列表中的單個元素需要更多的時間,因為字典使用哈希表來實現排列。
Python3
# Program to fetch particular
# elements of structure
import time
# Creating dictionary and list
dict_name ={"bob":12, "john":11}
list_name =[2, 3, 4, 5, 1]
# Time taken by dictionary
x = time.time()
L = dict_name["bob"]
y = time.time()
print("Time taken by dictionary:", y-x)
# Time taken by list
x = time.time()
L = list_name[2]
y = time.time()
print("\nTime taken by list:", y-x)
輸出:
Time taken by dictionary: 9.5367431640625e-07
Time taken by list: 4.76837158203125e-07
相關用法
- Python List和Tuple的區別用法及代碼示例
- Python List和Array的區別用法及代碼示例
- Python List append()用法及代碼示例
- Python List extend()用法及代碼示例
- Python List insert()用法及代碼示例
- Python List remove()用法及代碼示例
- Python List index()用法及代碼示例
- Python List count()用法及代碼示例
- Python List pop()用法及代碼示例
- Python List reverse()用法及代碼示例
- Python List sort()用法及代碼示例
- Python List copy()用法及代碼示例
- Python List clear()用法及代碼示例
- Python List cmp()用法及代碼示例
- Python List len()用法及代碼示例
- Python List max()用法及代碼示例
- Python List min()用法及代碼示例
- Python List list()用法及代碼示例
- Python List remove方法用法及代碼示例
- Python List insert方法用法及代碼示例
- Python List copy方法用法及代碼示例
- Python List append方法用法及代碼示例
- Python List clear方法用法及代碼示例
- Python List pop方法用法及代碼示例
- Python List sort方法用法及代碼示例
注:本文由純淨天空篩選整理自vinaychopra92vc大神的英文原創作品 Difference between List and Dictionary in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。