介绍
字典(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 入门教程——目录索引