介绍

字典(dictionary)同样是一种可以用于存储各种不同类型数据的集合,它是通过索引键来存取数据的一种内置数据结构类型。

在python中字典是继列表外使用最灵活的一种内置数据结构类型,其中字典中的元素是通过索引键来存储元素的,而列表则是通过下标偏移值来存储元素的,由此可知字典是一种无序的对象集合,而列表是一种有序的对象结合。

字典是一种可修改的数据结构类型,它可以存储任意类型的对象。

字典定义:用 { } 括住元素,内部每个元素都由 索引(key) 和它对应的 值(value) 组成,索引在前,值在后,两者用 : 冒号隔开,字典内各元素之间用 , 逗号隔开,例如:

dict ={key1 : value1 ,key2 : value2,...,key_n : value_n }

注意:同一字典内的 键(key) 切勿相同,如果存在相同的 键(key),程序将使用最最后一个定义的数据!

创建字典变量

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 单独赋值
dict1 = {}  # 定义一个空字典
dict1["python"] = "Programing Language"   # 给字典dict1添加一个元素

# 直接定义字典并赋值
dict2 = {'a':97 , 'name':'xiaoming' ,100:'yuan'}

提取字典里的值

通过字典里每个元素所定义的索引键值来获得相应元素所对应的值。实例如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

dic = {'a':97 , 'name':'xiaoming' ,100:'yuan'}

print("索引‘a’的值为:", dic['a'])
print("索引100的值为:", dic[100])

输出结果:

索引‘a’的值为: 97
索引100的值为: yuan

注意:在描述索引键的时候,一定要将完整的键值写入(包括符号)。

更新字典元素

由与字典是一种可读可写的结构型数据,所以在定义字典后可以进行元素的修改/更新。

1)向字典添加新内容:增加新的键和对应的值
2)更新索引所对应的值:使用原有的索引,然后附上新的值

实例如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

dic = {'colour':'red','money':100 }  # 创建字典
print(dic)  # 输出字典

dic['code'] = 8214   # 往字典增加一个元素
print(dic)   # 输出字典

dic['colour'] = 'yellow'  # 更新索引为‘colour’的值
print(dic)   # 输出字典

输出结果:

{'money': 100, 'colour': 'red'}
{'money': 100, 'colour': 'red', 'code': 8214}
{'money': 100, 'colour': 'yellow', 'code': 8214}

提示:字典中的元素排序是随机的!

删除字典元素

由于字典的可读可写特性,所以字典支持单一元素的删除,同时也可以将整个字典删除。

同样的,字典数据的删除操作,可使用 del 语句完成,具体有:

  • 删除单个元素: del dict_name[key_name]
  • 删除整个字典: del dict_name

实例如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

dic = {'colour':'red','money':100 ,'ID':7562}   # 创建字典
print(dic)   # 输出字典

del dic['money']   # 删除索引为'money'的元素
print("更新后的字典:", dic)

del dic   # 删除整个字典
print(dic)

输出结果:

{'money': 100, 'colour': 'red', 'ID': 7562}
更新后的字典: {'colour': 'red', 'ID': 7562}
Traceback (most recent call last):
File "./dict.py", line 31, in
print dic
NameError: name 'dic' is not defined

分析:在删除字典后,当再次调用时,系统会报错说没有定义该字典。

字典索引键特性

1)索引唯一特性:一个元素的索引一旦被定义后,便不可修改。如使用不同的索引相同的值,表示添加一个元素。

2)使用后者特性:当一个索引键出现两次时,将采用后面一个索引键所对应的值,此时表示更新元素。

字典内置函数&方法

(1)Python字典包含了以下内置函数:

函数功能
len( dict )计算字典元素(键)的个数
str( dict )将字典转为一个字符串
cmp( dict1 ,dict2 )比较两个字典的元素

(2)Python字典包含了以下内置方法:

方法功能
dict.clear( )清空字典内所有元素
dict.copy( )深拷贝(仅一级目录)
dict.fromkeys( seq,val )创建一个新字典,序列seq的元素为键值,val为值
dict.get( key ,deafult=None)返回查找‘键’对应的值,如果没有该‘键’则返回空
dict.has_key( key )如果键在字典里返回true,否则返回false
dict.setdefault( key ,default)查找键值,如果键在字典中则返回其值,如果不在,则添加键并将值设为default
dict.update(dict2)把字典dict2的键/值对更新到dict中
dict.items( )以列表形式返回可遍历的(键, 值) 元组数组
dict.has_key(key)如果键在字典dict中返回true,反之返回false
dict.keys( )以列表形式返回字典dict中的所有‘键’
dict.values( )以列表形式返回字典dict中的所有‘值’

完整学习教程请访问Python3 入门教程——目录索引

最后修改:2022 年 06 月 11 日
如果觉得我的文章对你有用,请随意赞赏