美文网首页
Python入门之字典

Python入门之字典

作者: 我的袜子都是洞 | 来源:发表于2019-07-17 15:50 被阅读0次

    使用字典

    在Python中,字典是一系列键-值对。每个键都与一个值相关联,可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。
    在Python中,字典用方在花括号{}中的一系列-键值对表示。

    alien_0 = {'color': 'green', 'points': 5}
    

    最简单的字典只有一个键-值对。

    alien_0 = {'color': 'green'}
    

    访问字典中的值

    要获取与键相关联的值,可依次指定字典名和放在方括号内的键。

    alien_0 = {'color': 'green'}
    print(alien_0['color'])
    

    添加键-值对

    字典是一种动态结构,可随时在其中添加键-值对。要添加键-值对,可依次指定字典名、用方括号括起的键和相关联的值。

    alien_0 = {'color': 'green', 'points': 5}
    print(alien_0)
    alien_0['x_position'] = 0
    alien_0['y_position'] = 25
    print(alien_0)
    

    创建一个空字典

    有时候,在空字典中添加键-值对是为了方便,而有时候必须这样做。为此,可先使用一对空的花括号定义一个字典,再分行添加各个键-值对。

    alien_0 = {}
    
    alien_0['color'] = 'green'
    alien_0['points'] = 5
    print(alien_0)
    

    修改字典中的值

    alien_0 = {'color': 'green'}
    print(alien_0)
    alien_0['color'] = 'yellow'
    print(alien_0)
    

    删除键-值对

    对字典中不需要使用的信息,可以使用del语句将相应的键-值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

    alien_0 = {'color': 'green', 'points': 5}
    print(alien_0)
    
    del alien_0['points']
    print(alien_0)
    

    遍历字典

    遍历所有键-值对

    user_0 = {
        'username': 'efermi',
        'first': 'enrico',
        'last': 'fermi',
    }
    
    for key, value in user_0.items():
        print("\nKey: " + key)
        print("Value: " + value)
    

    方法items(),它返回一个键-值对列表。

    注意:遍历字典时,键-值对返回顺序也与储存顺序不同。Python不关心键-值对的储存顺序,而只跟踪键和值之间的关系联系。

    遍历字典中所有的键

    在不需要使用字典中的值时,方法keys()很有用。

    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python'
    }
    
    for name in favorite_languages.keys():
        print(name.title())
    

    方法keys()并非只能用于遍历,实际上,它返回一个列表,其中包含字典中的所有键。

    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python'
    }
    
    if 'erin' not in favorite_languages.keys():
        print("Erin, please take our poll!")
    

    按顺序遍历字典中的所有键

    获取字典元素时,获取顺序是不可预测的,这不是问题,因为通常你想要的只是获取与键相关联的正确的值。
    要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。为此可以使用sorted()来获得按特定顺序排列的键的副本。

    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python'
    }
    
    for name in sorted(favorite_languages.keys()):
        print(name.title() + ", thank you for taking the poll.")
    

    遍历字典中的所有值

    如果你感兴趣的主要是字典中包含的值,可使用方法values(),它返回一个值列表,而不包含任何键。这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,也许不是问题,但是如果很多呢?为剔除重复项,可使用集合(set),集合类似于列表,但每个元素都必须时独一无二的。

    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python'
    }
    
    for language in set(favorite_languages.values()):
        print(language.title())
    

    嵌套

    有时候,需要将一系列字典储存在列表中,或将列表作为值储存在字典中,这称为嵌套。

    字典列表

    列表中嵌套字典:

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

    在字典中储存列表

    有时候,需要将列表储存在字典中,而不是将字典储存在列表中。

    pizza = {
        'crust': 'thick',
        'toppings': ['mushrooms', 'extra cheese'],
    }
    

    在字典中储存字典

    可以在字典中嵌套字典,但这样做时,代码可能很快复杂起来。

    相关文章

      网友评论

          本文标题:Python入门之字典

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