2

字典里面可创建无数的信息,跟列表不一样的是,字典中存在key与value的一对一关系,一个key对应这一个value。

#简单实例
alien_0={'color':'green','point':5}
print(alien_0['color'])#-->green
print(alien_0['point'])#-->5
print(alien_0)#-->{'color':'green','point':5}
#正确实例
color=5
alien_0={color:'green','point':5}
alien_0={5:'green','point':5}

#错误实例
alien_0={col:'green','point':5}#前面没有定义col,会报错
color={5:4}
alien_0={color:'green','point':5}#unhashable type: 'dict'报错
#由此表明字典中的Key值是一个可哈希的类型

#不过value值就没有什么限制,但是同样不能是一个未定义的毫无意义的东西
#它可以是字典,字符串,布尔值,列表,元组等
alien_0={'color':green,'point':5}#前面没有定义green,会报错

通过实例可以看见,我们创建一个字典是通过{}的,在{}中的:左边的为key,右边的为value,注意key值不能向JS中的对象一样随便写一个原本不存在的没有意义的东西

  • 访问字典元素、
    访问字典元素跟列表稍有不同,列表是根据其索引值即0-末尾,但是字典是通过key值进行访问并操作的

    alien_0={'color':'green','point':5}
    print(alien_0['color'])#-->green
    
    color=alien_0['color']#使用一个变量保存并输出
    print(color)#-->green
  • 获取字典形成列表

    alien_0={'color':'green','point':5}
    
    #得到key值列表
    keys=alien_0.keys()
    print(keys)#-->dict_keys(['color', 'point'])
    #但这不是一个列表,我们可以进行转化
    keys=list(alien_0.keys())
    print(keys)#-->['color', 'point']
    
    #得到value值列表
    values=alien_0.values()
    print(values)#-->dict_values(['green', '5])
    #但这不是一个列表,我们可以进行转化
    values=list(alien_0.values())
    print(values)#-->['green', '5]
    
    #得到每一项值列表
    items=list(alien_0.items())
    print(items)#-->[('color', 'green'), ('point', 5)]
    #列表中每一项存储的是一个元组
    
    #额外
    if 'green' in alien_0:
        print('True')
    else:
        print('False')
    #-->False
    
    if 'color' in alien_0:
        print('True')
    else:
        print('False')
    #-->True
    #以上跟列表中判断元素是否存在一样,可见alien_0只包含key值,而value不能,应该是alien_0是根据key值的得到的数据才不行
    #不过转化为这种可以了
     f 'green' in alien_0.values():
        print('True')
    else:
        print('False')
    #-->True
  • 添加键值对
    因为是根据key值访问的,所以我们添加时必须考虑key值,然后给该key值赋予一个对应的元素

    alien_0={'color':'green','point':5}
    print(alien_0['color'])#-->green
    alien_0['x_pos']=0
    alien_0['y_pos']=25
    #以上就添加了两个元素
    print(alien_0['x_pos'])#-->0
    print(alien_0['y_pos'])#-->25
    print(alien_0)#-->{'color':'green','point':5,'x_pos':0,'y_pos':25}
  • 修改键值
    因为是根据Key值访问的,因此我们可以先访问到对应的key值,然后进行修改,改变其所储存的值

    alien_0={'color':'green','point':5}
    alien_0['point']=100
    print(alien_0['point'])#-->100
    print(alien_0)#-->{'color':'green','point':100}
    if alien_0['color'] == 'green':
        print('True')#-->True
  • 查询字典

    alien_0={'color':'green','point':5}
    print(alien_0)#-->{'color':'green','point':5}
    print(alien_0["color"])#-->green
    print(alien_0.get("point"))      #有就返回它的值,没有就为None
    print("color" in alien_0)        #判断一个键是否在一个字典里面,有就True没有就False
  • 删除键值对
    实例

    alien_0={'color':'green','point':5}
    print(alien_0)#-->{'color':'green','point':5}
    del alien_0['color']#访问值,然后释放空间
    print(alien_0)#-->{'point':5}
    
    alien_0.pop("color")     #弹出
    print(alien_0)#-->{'point':5}
    test1 = alien_0.popitem()#弹出最后一个,形成一个元组
    print(test1)#-->('point',5)
  • 遍历字典
    我觉得这里比较难记一点,得多练习
    (1)遍历所有键值对

    alien_0={'color':'green','point':5}
    for key,value in alien_0.items():
        print('key:'+key)
        print('value:'+str(value))
    #这里有一个麻烦的地方就是'point':5值为数组
    #不能与字符串直接连接,因此我们改变加了一个转化为字符串的函数str()
    #-->key:color
    #-->value:green
    #-->key:point
    #-->value:5

    (2)遍历所有键

    alien_0={'color':'green','point':5}
    for key in alien_0.keys():
        print('key:'+key)
    #-->key:color
    #-->key:point

    (3)遍历所有值

    alien_0={'color':'green','point':5}
    for value in alien_0.values():
        print('value:'+value)
    #-->value:green
    #-->value:5
  • 嵌套
    列表中嵌套字典

    alien_0={'color':'green','point':5}
    alien_1={'color':'white','point':10}
    alien_2={'color':'blank','point':15}
    aliens=[alien_0,alien_1,alien_2]
    print(aliens)
    #-->[{'color':'green','point':5},{'color':'white','point':10},{'color':'blank','point':15}]
    newAligen=aliens[2]#访问元素
    print(newAligen)#-->{'color':'blank','point':15}

    字典中嵌套列表

    aliens={'colors':['green','white','blank'],'point':5}
    print(aliens)
    #-->{'colors':[green,white,blank],'point':5}
    colors=aliens['colors']#访问元素
    print(colors[0])#-->green

    字典中存储字典

    user_0={'nickname':'小白龙马','sex':'男'}
    user_1={'nickname':'白马','sex':'女'}
    users={"user_0":user_0,'user_1':user_1}
    print(users['user_0'])#-->{'nickname':'小白龙马','sex':'男'}

    遍历访问

    user_0={'nickname':'小白龙马','sex':'男'}
    user_1={'nickname':'白马','sex':'女'}
    users={"user_0":user_0,'user_1':user_1}
    for user,userinfo in users.items():#user为kEY值,userinfo为用户信息值
        print('用户:'+user)
        print('用户姓名:'+userinfo['nickname'])
    #-->用户:user_0
    #-->用户姓名:小白龙马
    #-->用户:user_1
    #-->用户姓名:白马

    (写的有点乱)


小白龙马
6 声望7 粉丝

心境最重要


引用和评论

0 条评论