(012)我们一起学Python;字典

字典不是序列类型,是 映射类型!字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 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}


猜你喜欢

转载自blog.csdn.net/weixin_34981646/article/details/80786125