本博客为读书笔记,参考以下网站及书籍。
参考网站:http://www.runoob.com/python3/python3-tutorial.html
参考书目:《Python编程从入门到实践》作者【美】Eric Matthes 袁国忠 译
书籍PDF下载:链接:https://pan.baidu.com/s/16ao_vfGI30IKsXNpsuQ2EA 密码:wg4a
在本章中, 你将学习能够将相关信息关联起来的Python字典。 你将学习如何访问和修改字典中的信息。 鉴于字典可存储的信息量几乎不受限制, 因此我们会演示如何遍历字典中的数据。 另外, 你还将学习存储字典的列表、 存储列表的字典和存储字典的字典。
理解字典后, 你就能够更准确地为各种真实物体建模。 你可以创建一个表示人的字典, 然后想在其中存储多少信息就存储多少信息: 姓名、 年龄、 地址、 职业以及要描述的任何方面。 你还能够存储任意两种相关的信息, 如一系列单词及其含义, 一系列人名及其喜欢的数字, 以及一系列山脉及其海拔等
我感觉字典有点类似于C语言的结构体或者C++里面的类,都想表示一个对象的不同特征,当然自己对python才刚开始了解,可能不对。
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此创建字典:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
来看一个游戏, 其中包含一些外星人, 这些外星人的颜色和点数各不相同。 下面是一个简单的字典, 存储了有关特定外星人的信息:
alien.py
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])
print(alien_0['points'])
字典alien_0 存储了外星人的颜色和点数。 使用两条print 语句来访问并打印这些信息, 如下所示:
green
5
与大多数编程概念一样, 要熟练使用字典, 也需要一段时间的练习。 使用字典一段时间后, 你就会明白为何它们能够高效地模拟现实世界中的情形。
在Python中, 字典 是一系列键——值对 。 每个键 都与一个值相关联, 你可以使用键来访问与之相关联的值。 与键相关联的值可以是数字、 字符串、 列表乃至字典。 事实上, 可将任何Python对象用作字典中的值。
在Python中, 字典用放在花括号{} 中的一系列键—值对表示, 如前面的示例所示:
alien_0 = {'color': 'green', 'points': 5}
键——值 对是两个相关联的值。 指定键时, Python将返回与之相关联的值。 键和值之间用冒号分隔, 而键——值对之间用逗号分隔。 在字典中, 你想存储多少个键—值对都可以。
最简单的字典只有一个键——值对, 如下述修改后的字典alien_0 所示:
alien_0 = {'color': 'green'}
这个字典只存储了一项有关alien_0 的信息, 具体地说是这个外星人的颜色。 在这个字典中, 字符串’color’ 是一个键, 与之相关联的值为’green’ 。
要获取与键相关联的值, 可依次指定字典名和放在方括号内的键, 如下所示:
alien_0 = {'color': 'green'}
print(alien_0['color'])
这将返回字典alien_0 中与键’color’ 相关联的值:
green
字典中可包含任意数量的键—值对。 例如, 下面是最初的字典alien_0 , 其中包含两个键—值对:
alien_0 = {'color': 'green', 'points': 5}
现在, 你可以访问外星人alien_0 的颜色和点数。 如果玩家射杀了这个外星人, 你就可以使用下面的代码来确定玩家应获得多少个点:
alien_0 = {'color': 'green', 'points': 5}
❶ new_points = alien_0['points']
❷ print("You just earned " + str(new_points) + " points!")
上述代码首先定义了一个字典, 然后从这个字典中获取与键’points’ 相关联的值(见❶) , 并将这个值存储在变量new_points 中。 接下来, 将这个整数转换为字符串, 并打印一条消息, 指出玩家获得了多少个点(见❷) :
You just earned 5 points!
如果你在有外星人被射杀时都运行这段代码, 就会获取该外星人的点数。
计算字典元素个数,即键的总数。
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
len(dict)
输出
3
输出字典,以可打印的字符串表示。
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
str(dict)
输出:
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"
返回输入的变量类型,如果变量是字典就返回字典类型。
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
type(dict)
输出
1 radiansdict.clear()
删除字典内所有元素
2 radiansdict.copy()
返回一个字典的浅复制
3 radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4 radiansdict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
5 key in dict
如果键在字典dict里返回true,否则返回false
6 radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7 radiansdict.keys()
返回一个迭代器,可以使用 list() 来转换为列表
8 radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9 radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10 radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
11 pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12 popitem()
随机返回并删除字典中的一对键和值(一般删除末尾对)。