美文网首页Java技术分享
傻瓜式学Python3——字典

傻瓜式学Python3——字典

作者: 张少林同学 | 来源:发表于2017-09-02 15:34 被阅读30次
    来自网络 .jpg

    经历过七夕的恐怖气息之后,想想程序猿会有女朋友?不存在的,代码才是真爱,继续 Python 的学习之旅—— 字典

    接触过 java 的朋友肯定知道 map 数据结构 ,以键值对的形式存储数据,即 key--value 的形式,Python 中的 字典,就相当于 java 中的 map,字典可存储的信息量几乎不受限制,以键值对的形式存在,可以很准确的为各种真实物体建模,而且存储数据是动态的,可以随时添加键值对,没有限制。例如可以创建一个表示人的字段,存储有关于人的一切信息:身高,体重,家庭住址等等。

    开车.png

    字典基本定义

    使用 {} 包含一系列键值对数据,其中 键 必须为 String 格式。

    person = {'name': '张少林', 'age': 24,'address': 'zhangzhou'}
    

    访问字典中的值

    格式 字典名[键] 获取对于键的 value

    person = {'name': '张少林', 'age': 24, 'address': 'zhangzhou'}
    print(person['name'])
    

    结果为张少林

    添加 key-value

    字典可以存储任意多个 key-value,可以随时在字典中添加任意个 key-value 值,字典名[键]赋值即可。

    person = {} //定义空字典
    person['name'] = '张少林'//添加值
    person['age'] = 24//添加值
    print(person)
    

    结果为:{'name': '张少林', 'age': 24}

    更新字典中的值

    字典名[键]赋值,加入键已经存在,则更新,不存在则新增

    person = {}
    person['name'] = '张少林'
    person['age'] = 24
    print(person)
    
    person['age'] = 18 //修改age字段的值
    print(person)
    

    结果为:

    {'name': '张少林', 'age': 24}
    {'name': '张少林', 'age': 18}
    

    永久性删除字典中的值

    使用 del 删除字典的 key-value

    del person['age']
    print(person)
    

    结果为:{'name': '张少林'}
    注意:这样是永久删除该键值对

    遍历所有的 key-value

    person = {
        'name': '张少林',
        'age': 24,
        'address': 'zhangzhou'
    }
    for key,value in person.items():
        print('key:',key,'--->','value:',value)
    

    结果为:

    key: address ---> value: zhangzhou
    key: name ---> value: 张少林
    key: age ---> value: 24
    

    遍历所有的 key

    for key in person.keys():
        print('key:',key)
    

    结果为:

    key: address
    key: age
    key: name
    

    按顺序遍历所有键

    for key in sorted(person.keys()):
        print('key:',key)
    

    结果为:

    key: address
    key: age
    key: name
    

    遍历所有的 value 值

    for value in person.values():
        print('value:',value)
    

    结果为:

    value: zhangzhou
    value: 24
    value: 张少林
    

    在列表中存储字典

    字典就类似 java 对象一样,存储着一类事物的信息,有时候需要存储一些同类事物的信息,可以使用在列表中存储字典

    alien_0 = {'color':'green','point':5}
    alien_1 = {'color':'yellow','point':10}
    alien_2 = {'color':'red','point':15}
    
    aliens = [alien_0,alien_1,alien_2]
    
    for alien in aliens:
        print(alien)
    

    结果为:

    {'point': 5, 'color': 'green'}
    {'point': 10, 'color': 'yellow'}
    {'point': 15, 'color': 'red'}
    

    在字典中存储列表

    类似 java 对象中包含的信息,有可能一个字段包含的信息量很多,可以是一个列表,所以可以在字典中存储列表

    pizza = {
        'crust': 'thick',
        'toppings': ['mushrooms', 'extra cheese']
    }
    print(pizza['crust'])
    for topping in pizza['toppings']:
        print(topping)
    

    结果为:

    thick
    mushrooms
    extra cheese
    

    在字典中存储字典

    users = {
        'aeinstein':{
            'first':'albert',
            'last':'aeinstein',
            'location':'princeton',
        },
        'mcurie':{
            'first':'marie',
            'last':'curie',
            'location':'paris',
        }
    }
    for name,userInfos in users.items():
        print('name---->',name)
        for key,userInfo in userInfos.items():
            print('key-->',key,'userInfo--->',userInf
    

    结果为:

    name----> mcurie
    key--> last userInfo---> curie
    key--> first userInfo---> marie
    key--> location userInfo---> paris
    name----> aeinstein
    key--> last userInfo---> aeinstein
    key--> first userInfo---> albert
    key--> location userInfo---> princeton
    

    注意:遍历字典的时候都没有按顺序的,取值只关心键对应的值

    检查 key 是否存在

    if 'aeinstein' in users:
        print('aeinstein is here!')
    

    结果:aeinstein is here!

    使用 get()方法获取字典值

    之前使用 字典名[键] 形式直接获取字典对应键的值,加入 key 不存在会报错,可以使用 get 获取值,加入 key 不存在,显示 None 值,当然 get() 可以传入默认值,加入key 值不存在,则显示传入的默认值。

    person = {
        'name': '张少林',
        'age': 24,
        'address': 'zhangzhou'
    }
    print(person.get('name','小林'))
    

    结果打印张少林

    简单记录一下学习笔记,如有不足之处,麻烦评论区之处,谢谢

    更多原创文章会在公众号第一时间推送,欢迎扫码关注 张少林同学

    张少林同学.jpg

    相关文章

      网友评论

        本文标题:傻瓜式学Python3——字典

        本文链接:https://www.haomeiwen.com/subject/pstzdxtx.html