5.1、一个简单的字典
5.1.1、字典的表示
- 字典的标识是花括号,元素以 键-值对 成对组成,键key 对应有值value ;键、值之间用冒号隔开,键-值对 之间用逗号隔开
- 空字典用空的花括号表示
5.1.2、字典的一些特征
- 字典的标识是花括号,元素以 键-值对 成对组成,键key 对应有值value ;键、值之间用冒号隔开,键key 作用类似于索引
- 键-值对 在Python 3.6 以前是无序的,但往后变得有序(键的添加顺序)
- 可以将任何Python 对象做字典的值,可以是数字、字符串、列表乃至字典
- 字典的键的类型必须是可哈希类型,列表和字典不可做字典的键,数字、字符串、元组都可以
- 字典里的键必须唯一,如果有重复,会将相同键所关联的值同时指向最后一次相同键所设定的(对应的)值
5.2、使用字典
5.2.1、访问字典
- 要访问字典键值对的值,可以通过字典中 键-值对 的键访问
#示例1
#代码
dict_i = {'ID':'apple.D', 'liked-fruit':'西瓜'}
print("my id is " + dict_i['ID'])
#输出
my id is apple.D
5.2.2、添加 键-值对
- 通过字典名添加,将新的键写在字典名后方括号里,通过赋值的方式,将键与值相关联起来
5.2.3、修改键所关联的值
- 通过键来索引,赋值的方法改变键所关联的值
注意:这和 键-值对 的添加有相似之处,在确定不添加 键-值对 的情况下,请先判断字典是否包含要修改的键
5.2.4、删除 键-值对
- 使用del 语句将指定的 键-值对 彻底删除,须指定字典及要删除的键
5.2.5、使用多行来定义字典
- 当定义字典时,字典 键-值对 过多或过长,选择多行定义是非常方便的
- 用法:左花括号后回车,每个 键-值对 前缩进4 空格,键-值对 后加上逗号回车,最后的 键-值对 后可不加逗号,将右花括号放在最后 键-值对 下一行并缩进相同空格
#示例2
#代码
dict_i = {
'key1':'value1',
'key2':'value2',
'key3':'value3',
'key4':'value4',
}
print(dict_i)
#输出
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4'}
5.3、遍历字典
5.3.1、遍历所有 键-值对
- 使用for 循环,for 后的变量分别记录每次的得到的键与其相关联的值,之间用逗号隔开
- 注意:对于是否顺序获得键值,参考所使用的Python 版本(本专栏参考书目中顺序随机,)
5.3.2、遍历所有的键
- keys() 方法将提取字典中所有的键,构建一个成列表
#示例3
#代码
dict_sample = {
'key1':'value1',
'key2':'value2',
'key3':'value3',
'key4':'value4',
}
print(dict_sample.keys())
for key0 in dict_sample:
print(key0)
#输出
dict_keys(['key1', 'key2', 'key3', 'key4'])
key1
key2
key3
key4
- 忽略方法同样会得到字典中的键值,不过使用方法更方便理解
#示例4
#代码
dict_sample = {'key1':'value1', 'key2':'value2'}
print(dict_sample)
for key0 in dict_sample:
print(key0)
#输出
{'key1': 'value1', 'key2': 'value2'}
key1
key2
5.3.3、按顺序遍历字典中的所有键
- 使用keys() 方法会得到字典中所有键的一个列表,对该列表使用方法sort() 或使用函数sorted() 获得一个有序的列表,再使用for 循环遍历键的有序列表
5.3.4、遍历字典中的所有值
- values() 方法获得关于字典中所有值的一个列表,
- 使用集合(set )将值中的重复项剔除,使用set() 函数,将列表转换成集合
5.3.5、集合(补充)
- 性质及表示
- 遍历与操作
参考网页说明Python 集合
5.4、嵌套
5.4.1、字典列表与列表字典
- 在列表中包含字典,列表的元素可以是字典
- 在字典中包含列表,字典的值可以是列表
- 字典中包含字典,字典的值可以是字典
本章包含的方法、函数和语句总结
不包含集合的相关内容
方法
- keys() 方法获得字典所有的键,返回一个列表
- values() 方法获得字典所有的值,返回一个列表
函数
- set() 函数将列表转换成集合,将重复的值保留一个