Python 字典:你需要知道的一切 [附例子]

已发表: 2020-04-14

如果您使用 Python,您一定听说过列表、字符串和元组。 今天,我们将讨论 Python 的另一个关键元素——字典。 看完这篇文章,你应该对 Python 字典,如何创建,如何使用它们有一个比较好的了解。

目录

什么是 Python 字典?

在 Python 中,字典是通常称为关联数组的数据结构的实现。 它包含无组织的数据值集合(例如,地图)。 但是,与仅包含单个值作为元素的其他数据类型不同,存储在字典中的数据值包含一个键:值对。 这有助于优化字典。 每个键:值对映射与其值关联的唯一键。

在 Python 字典中,键是唯一的,但值可能是也可能不是——虽然键必须是不可变的数据类型(字符串、数字和元组),但值可以是任何类型。 此外,在 Python 字典中,键是区分大小写的。 因此,具有相同名称的键,但不同情况下的处理方式不同。

详细了解: Python 数据类型

字典与列表

在 Python 中,字典和列表既有相似之处,也有不同之处。 字典和列表共有的共同特征包括:

  • 它们是可变的。
  • 它们是动态的。
  • 它们可以嵌套——一个列表可以包含另一个列表,一个字典可以包含另一个字典。 此外,列表可以包含字典,反之亦然。

字典和列表之间的主要区别在于,虽然列表元素可以通过索引访问(基于它们在列表中的位置),但字典元素是通过键访问的。

Python 字典 - 方法

现在,我们将讨论 Python 字典中一些最常用的方法。

  • copy() ——它返回一个字典的浅拷贝。
  • clear( ) - 它从字典中删除所有项目。
  • type( ) – 它返回传递变量的类型。
  • pop( ) – 在提供键后,它从字典中删除并返回一个项目。
  • popitem( ) – 它删除并返回任意项(键、值)。 此外,如果字典为空,它会引发 KeyError。
  • get( ) – 用于访问键的值。
  • items( ) – 它返回字典项目(键、值)的新视图。
  • str( ) – 它生成字典的可打印字符串表示。
  • pop(key[,d]) - 它删除带有 key 的项目并返回其值,如果未找到 key,则返回d 但是,如果未提供d且未找到密钥,则返回KeyError
  • get(key[,d]) - 它返回键的值。 如果键不存在,则返回d (默认为None )。
  • fromkeys(seq[, v]) – 它返回一个新字典,其中包含来自seq的键并且值等于 v(默认为None )。
  • update([other]) - 它通过覆盖现有键来使用其他键/值对更新字典

如何创建字典?

您可以通过将逗号分隔的键值对列表括在花括号 { } 中来创建 Python 字典。 冒号“:”将每个键与其关联的值分开:

d = {

<键>:<值>,

<键>:<值>,

.

.

.

<键>:<值>

}

您还可以使用内置函数dict()创建字典,如下所示:

# 空字典

我的字典 = {}

# 带有整数键的字典

my_dict = {1:'苹果',2:'球'}

# 混合键字典

my_dict = {'name': '约翰', 1: [2, 4, 3]}

# 使用 dict()

my_dict = dict({1:'apple', 2:'ball'})

# 来自将每个项目作为一对的序列

my_dict = dict([(1,'apple'), (2,'ball')])

如何访问字典中的元素?

要访问字典中的元素,您必须引用其键名。 您可以使用get( )方法来检索项目,或者您可以在方括号 [ ] 中提及键名。 如果在字典中没有找到键, get()方法返回 None 而不是 KeyError。

下面是一个用于访问字典中元素的代码示例:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

打印“dict['Name']:”,dict['Name']

打印“字典['年龄']:”,字典['年龄']

如何在字典中添加或更改元素?

由于 Python 字典是可变的,因此您可以添加元素甚至更改字典中包含的现有项的值。 可以通过多种方式将元素添加到字典中。 但是,您可以通过将其与键一起定义来一次将一个值添加到字典中。

例如, dict[key] = 'value'。 要更新字典中的现有值,您必须使用内置的update()方法。 您必须记住,在向字典添加值时,如果该值已经存在,则该值将被更新,否则带有该值的新键将被添加到字典中。

my_dict = {'name':'Jack', 'age': 26}

# 更新值

我的字典['年龄'] = 27

#输出:{'年龄':27,'名字':'杰克'}

打印(我的字典)

# 添加项目

my_dict['address'] = '市中心'

# 输出:{'address': 'Downtown', 'age': 27, 'name': 'Jack'}

打印(我的字典)

如何从字典中删除或删除元素?

要从字典中删除或删除项目,可以使用pop ( )方法。 它将使用提供的 ket 删除特定项目并返回该值。 您还可以使用popitem( )方法从字典中删除并返回任意元素(键和值)。

如果要一次删除所有项目,可以使用clear( )方法。 您还可以使用 del 关键字删除单个项目或使用del dict ( )方法删除整个字典本身。

使用 del dict ( ) 方法的示例:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['名称']; # 删除带有键“名称”的条目

dict.clear(); # 删除字典中的所有条目

删除字典; # 删除整个字典

打印“字典['年龄']:”,字典['年龄']

打印“dict['School']:”,dict['School']

还可以学习:印度的 Python 开发人员薪水

如何遍历字典?

在 Python 字典中,您可以使用for循环进行循环。 当您遍历字典时,字典的是返回值。

遍历字典的示例是:

对于thisdict中的x:

打印(x)

阅读:最重要的 Python 函数

如何检查字典中是否存在键?

您可以使用“ in ”关键字来检查字典中是否存在特定键,如下所示:

这个字典 = {

“品牌”:“法拉利”,

“型号”:“Daytone”,

“年份”:“1968”

}

如果thisdict中的“模型”:

print(“是的,‘模型’是 thisdict 字典中的键之一”)

如何确定字典的长度?

您可以使用len( )方法设置字典的长度,即确定它有多少元素(键:值对) ,如下所示:

打印(len(thisdict))

如何复制字典?

您可以使用内置的copy()方法复制字典。 但是,您不能通过键入dict2 = dict1来复制字典,因为dict2只是对dict1的引用

下面是一个使用copy()方法的例子:

这个字典 = {

“品牌”:“福特”,

“模型”:“野马”,

“年”:1964

}

mydict = thisdict.copy()

打印(mydict)

Python字典:理解

在 Python 中,字典理解是一种从可迭代对象创建新字典的直接而简洁的方法。 它由一个表达式对(键:值)和花括号 { } 内的 for 语句组成。 字典理解可以包含多个forif语句。

这是创建字典的示例,其中每个项目是一对数字及其平方:

squares = {x: x*x for x in range(6)}

# 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

打印(正方形)

阅读更多: Python 数据可视化库

包起来

基本上就是这样——你需要了解的关于 Python 字典的所有基础知识!

如果您想了解 Python 以及有关数据科学的一切,请查看 upGrad 的数据科学认证课程,该课程是为在职专业人士创建的,提供 10 多个案例研究和项目、实用的实践研讨会、与行业专家的指导、一对一-1 与行业导师,400 多个小时的学习和顶级公司的工作协助。

Python中对字典的需求是什么?

数据值的无序集合是 Python 字典。 Python 中需要字典来存储数据值,就像地图一样。 在所有其他数据类型中,它们只能将单个值作为元素保存。 但是,字典能够保存键:值对。 这对使字典的功能更加优化。

要在 Python 中创建字典,您只需将元素放在花括号中,用“逗号”分隔所有元素。 字典中的值可以重复和复制,但不能重复字典中的键。 字典中的键是区分大小写的,因此即使两个具有相同名称但大小写不同的键也会被区别对待。

什么可以存储在 Python 字典中?

Python 中使用字典在任何唯一键的帮助下检索数据。 您可以存储在 Python 变量中的所有内容都可以存储在 Python 字典中。 您甚至可以通过创建列表将一个字典嵌套到另一个字典中。 相反,密钥必须是不可变的。

您可以通过调用存储特定值的键轻松检索存储的值。 如果您对返回的列表进行任何更改,那么它也会对字典产生影响。 需要了解存储在字典中的值和检索到的列表只是相同的对象。

Hashtable 和 Dictionary 有何不同?

Hashtable 是非泛型集合,而 Dictionary 是数据值的泛型集合。 允许存储相同数据类型的键值对和不同数据类型的键值对,而字典中只能存储相同数据类型的键值对。

由于 Hashtable 中存在装箱和拆箱,因此与 Dictionary 相比,数据检索过程较慢。 Hashtable 中没有维护顺序,但您将始终在 Dictionary 中看到存储值的维护顺序。