字典不是序列类型,是 映射类型!字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
创建方法:
>>> dict1 = {1:'hengge',2:'huyue',3:'jaiwei'}
>>> dict1
{1: 'hengge', 2: 'huyue', 3: 'jaiwei'}
可以用dict方法来创建字典,同样支持 关键字创建法:
dict1 = dict(恒哥='嗯,我很帅!',龙泽='早上好',小泽='早上不如晚上好')
print('0___关键之'+"表示法:")
print(dict1)
dict2 = dict((('恒哥','嗯,我很帅!'),('龙泽','早上好'),('小泽','早上不如晚上好')))
print("1__元组表示法:")
print(dict2)
print('========如果没有这个元素,直接创建:=========')
dict3 = dict( XIAO ='小',ZE ='泽')
print(dict3)
print("======== 添加值以后: ===========")
dict3[2] = 'maliya'
print(dict3)
print("还有问题没解决,当key值为0,1,时会报错")
0___关键之表示法:
{'恒哥': '嗯,我很帅!', '龙泽': '早上好', '小泽': '早上不如晚上好'}
1__元组表示法:
{'恒哥': '嗯,我很帅!', '龙泽': '早上好', '小泽': '早上不如晚上好'}
========如果没有这个元素,直接创建:=========
{'XIAO': '小', 'ZE': '泽'}
======== 添加值以后: ===========
{'XIAO': '小', 'ZE': '泽', 2: 'maliya'}
还有问题没解决,当key值为0,1,时会报错
实用内建方法的时候,必须初始化,否则会报错。
Python 字典 fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
>>> dict1 = {} #不键入 value 值得话,默认参数为 None
>>> dict1.fromkeys((0,1,2,3,5))
{0: None, 1: None, 2: None, 3: None, 5: None}
>>> dict1.fromkeys((0,1,2,3,5),('666')) #并且 value 的值会赋给每一个元素
{0: '666', 1: '666', 2: '666', 3: '666', 5: '666'}
访问字典的几种方法:
删除:
del dict['Name']; # 删除键是'Name'的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典
get方法,如果元素不存在的话返回None类型
>>> print(dict1.get(4))
None
>>> dict1.items() #返回全部对象
dict_items([(1, 'hengge'), (2, 'huyue'), (3, 'jaiwei')])
>>> dict1.keys() #返回键值
dict_keys([1, 2, 3])
可以用成员资格操作符来进行判断: in notin ,要注意他查找的是键值
>>> 1 in dict1
True
>>> 1 not in dict1
False
>>> 4 not in dict1
True
输出方式:
>>> dict1.pop(2) #用参数来控制输出相应位置的元素
'huyue'
>>> dict1.popitem() #popitem()方法是不确定输出的
(3, 'jaiwei')
>>> dict1.popitem()
(1, 'hengge')
>>> dict1.update(dict2) #以一个字典为参数来对另一个字典进行更新,会更新第一个字典
>>> dict1
{1: 'hengge', 3: 'jaiwei', 'niuniu': 666}