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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。