Python编程技巧 – 使用字典

Python编程技巧 -- 使用字典

Python Programming Skills -- Using Dictionary

Dictionary, 即字典,这是Python语言的一种重要的数据结构;Python字典是以键(key)值(value)对为元素,来存储数据的集合。

前文提到Python列表,即List; 但字典和列表不同,它使用大括号{ }来指定包装。

python 复制代码
{ key1 : value1, key2 : value2, key3 : value3... ... }

本文简要介绍字典及其使用技巧,包括如何创建字典、添加值,字典条目及引用,以及如何用构造器创建字典等。

1. 创建字典

比如,在登记人员基本信息时,可采用键值对存储学生信息:

python 复制代码
students = { 'name' : 'Bob', 'age' : 20, 'gender' : 'male'}

这个students就是典型的字典,表达了学生的姓名、年龄和性别这些基本信息。由此看来,它很像一个二维表格。

在字典中, 是一系列唯一的值,同一个字典的键不能重复。同时,每一个键都对应一个数据对象,叫作。上面这个students字典对象中,名叫Bob的学生,具有年龄20,和性别男的特征;如果换成另一个人(对象),那么,就类似于一张二维表,可存入不同学生的数据信息。

2. 给字典添加值

与上述字典类似,我们创建另一个字典,即一个给学生评分的字典:

python 复制代码
grade_dict = {'Bob' : 3.9, 'Sue' : 3.9,  'Dick' : 2.5}

上述语句包含了三个条目。键分别为字符串'Bob', 'Sue' 和'Dick'; 它们分别对应于值3.9, 3.9 和2.5。

创建了字典后,可以给字典添加条目,也就是给字典添加值。如下代码:

python 复制代码
grade_dict['Bill G'] = 4.0

此时,打印这个字典,会发现真正添加了这个新条目,运行结果如下图:

3. 键的类型

字典需要遵循以下的规则,即所有键必须是相同的类型 ,或者,至少是可以兼容的类型,例如:整型和浮点型。

在确定相同类型的前提下,字典如果尝试获取特定键的值且该键不存在,那么Python会抛出异常。为了避免此类情况发生,可以使用get方法确保指定的键存在,如下格式,

python 复制代码
dictionary.get(key [, default_value])

方括号中表示可选条目。如果键存在,就返回其在字典中的对应值;否则,返回default_value(如果已指定), 或者返回None(如果未指定)。

我们创建另一段代码,用来计算单词的出现频率:

python 复制代码
s = input("Enter a string: ")).split()
word_counter = {}
for word in s:
  word_counter[word] = word_counter.get(word, 0) + 1

最后,打印输出结果如下图:

上述代码按照一定的逻辑执行:

1) 当找到一个新单词时,将该单词以值0 + 1的形式输入字典中;

2) 如果找到了已有单词,则get返回该单词的出现频率,然后将其加1;

3) 因此,如果找到了一个单词,则它的频率计数增加1;如果没有找到该单词,它将被添加到字典中,值为1。split方法用于将字符串分成单个单词列表。

4. 字典条目

在这个字典中,它的条目是有序的,可更改的,并且不允许重复;字典每个条目都由键值对的形式表示;如果要表示它,可以使用键名进行引用。

让我们换一个字典,如下所示:

python 复制代码
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

用这种格式来表示字典,显得清晰、简约。要引用字典条目,用以下命令:

python 复制代码
print(thisdict["brand'])

打印输出的结果:

python 复制代码
"Ford"

字典条目的值,可以是任意数据类型。看以下代码示例:

python 复制代码
thisdict = {
  "brand": "Ford",
  "electric": False,
  "year": 1964,
  "colors": ["red", "white", "blue"]
}

它包含的数据类型由有字符串型、整型、布尔型和列表型。

5. 有序的字典

从 Python 版本 3.7 开始,字典变成有序的。(在 Python 3.6 及更早版本中,字典是无序的。)

当我们说字典是有序的时,这意味着项目有一个定义的顺序,并且该顺序不会改变。

无序意味着字典条目没有定义的顺序,您不能像上述示例一样,使用索引引用具体的条目。

当然,字典是可以改变的,这意味着,我们能修改、增加或者删除所创建字典的条目。

键不允许复制。字典不允许两个条目是同一个键。示例代码如下:

python 复制代码
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(thisdict)

运行结果如下图:

可以看到,虽然上面的字典thisdict里,键year拥有两个值:1964和2020, 但实际上只允许一个值存在,因此后者覆盖了前者,结果为:

python 复制代码
{'brand': 'Ford', 'model': 'Mustang', 'year': 2020}

6. 类型与dict()构造器

在Python语言中,可以用type方法来得到字典的类型,如下代码:

python 复制代码
thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(type(thisdict))

执行结果如下图:

可以看到,返回的结果是<class 'dict'>,说明字典是对象(拥有类的实例)。

Python提供了dict()构造器来创建字典, 示例代码如下:

python 复制代码
thisdict = dict(name = "John", age = 36, country = "Norway")
print(thisdict)

运行输出结果如下图:

可以看到,被赋值的变量thisdict,已经变身为一个字典。

7. 小结

字典是对象。字典的数据可以是任意的数据类型;它的条目由键值对组成,每个条目只允许有一个键;字典可以修改、添加和删除条目。字典可以由构造器生成。

技术好文陆续推出,全部亲测,敬请关注。

喜欢就点赞哈,您的支持,我的动力。😊

相关阅读:

  1. Python编程技巧 - 使用字符串(Strings)
  2. Python编程技巧 - 对象和类
  3. Python编程技巧 - 使用列表(Lists)
  4. Python编程技巧 - 转换二进制、八进制和十六进制的函数
  5. Python编程技巧 - 函数入门
  6. 安装最新版Visual Studio Code来开发Python应用程序
  7. 2023最新版Python 3.12.0安装使用指南
  8. 安装2023最新版PyCharm来开发Python应用程序
相关推荐
时序数据说7 分钟前
时序数据库IoTDB结合SeaTunnel实现高效数据同步
大数据·数据库·开源·时序数据库·iotdb
Humbunklung12 分钟前
全连接层和卷积层
人工智能·python·深度学习·神经网络·机器学习·cnn
站大爷IP22 分钟前
使用Python时要注意的十大陷阱
python
Keya43 分钟前
使用 tinypng 脚本打包为exe 进行压缩图片
前端·python·程序员
代码搬运媛1 小时前
ES Modules 与 CommonJS 的核心区别详解
大数据·elasticsearch·搜索引擎
Tom Boom1 小时前
Pytest断言全解析:掌握测试验证的核心艺术
自动化测试·python·测试开发·pytest
Jamesvalley1 小时前
【Django】性能优化-普通版
python·性能优化·django
StackOverthink1 小时前
[特殊字符] Altair:用Python说话,让数据自己讲故事!!!
开发语言·python·其他·信息可视化
qq_527887872 小时前
ImportError: cannot import name ‘PfeifferConfig‘ from ‘transformers‘【已解决】
linux·开发语言·python
知舟不叙2 小时前
使用OpenCV和Python进行图像掩膜与直方图分析
人工智能·python·opencv·图像掩膜