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应用程序
相关推荐
这里有鱼汤19 分钟前
跟风还是反转?用 ADX 判断趋势强度,Python 教程全程带你飞
python
大模型真好玩1 小时前
深入浅出LangGraph AI Agent智能体开发教程(一)—全面认识LangGraph
人工智能·python·mcp
乘乘凉3 小时前
Python中函数的闭包和装饰器
前端·数据库·python
2501_924534895 小时前
智慧零售商品识别误报率↓74%!陌讯多模态融合算法在自助结算场景的落地优化
大数据·人工智能·算法·计算机视觉·目标跟踪·视觉检测·零售
盖雅工场5 小时前
连锁零售排班难?自动排班系统来解决
大数据·人工智能·物联网·算法·零售
UMI赋能企业8 小时前
企业视频库管理高效策略
大数据·人工智能
爱隐身的官人8 小时前
爬虫基础学习-爬取网页项目(二)
前端·爬虫·python·学习
刘恒12345678910 小时前
Pycharm
ide·python·pycharm
代码的余温10 小时前
Elasticsearch JVM调优:核心参数与关键技巧
大数据·jvm·elasticsearch
lifallen10 小时前
Hadoop MapReduce 任务/输入数据 分片 InputSplit 解析
大数据·数据结构·hadoop·分布式·算法