美文网首页
第四章 字典

第四章 字典

作者: 永不熄灭的火焰_e306 | 来源:发表于2019-09-26 10:53 被阅读0次

    <u>字典相当于java中的Map集合(以键值对的形式存放数据)</u>

    :一般是字符串居多。:数字、字符串、列表、字典本身、任何Python对象。

    alien_0 = {'color':'green','points':s}
    alien_1 = {'color':'red'}
    

    在字典中,你想存储多少个键—值对都可以。最简单的字典只有一个键—值对

    5.1 使用字典

    5.1.1 访问字典中的值——(依次指定字典名和放在方括号内的键)

    alien_0 = {'color': 'green','points':s} 
    print(alien_0['color'])
    #输出结果:green
    new_points = alien_0['points'] 
    print("You just earned " + str(new_points) + " points!")
    

    str()将整个整数转化为字符串。

    5.1.2 添加键-值对

    字典是一种动态结构。

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

    注意:Python不关心键—值对的添加顺序, 而只关心键和值之间的关联关系。

    5.1.3 先创建一个空字典

    可先使用一对 空的花括号定义一个字典,再分行添加各个键—值对

    alien_0 = {}                #定义一个空字典
    alien_0['color'] = 'green' 
    alien_0['points'] = 5
    print(alien_0)
    #结果:
    {'color': 'green', 'points': 5}
    

    5.1.4 修改字典中的值

    要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

    alien_0 = {'color': 'green'} 
    print("The alien is " + alien_0['color'] + ".") 
    alien_0['color'] = 'yellow' 
    print("The alien is now " + alien_0['color'] + ".")
    #结果:
    The alien is green. 
    The alien is now yellow.
    

    5.1.5 删除键-值对

    使用del语句删除,且必须指定<u>字典名</u>和<u>要删除的键</u>(与键对应的值也一并删除

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

    5.1.6 由类似对象组成的字典(格式)

    favorite_languages = { 
        'jen': 'python', 
        'sarah': 'c', 
        'edward': 'ruby', 
        'phil': 'python', 
     }
    

    确定需要使用多行来定义字典时,在输入左花括号后按回车 键,再在下一行缩进四个空格,指定第一个键—值对,并在它后面加上一个逗号。定义好字典后,在最后一个键—值对的下一行添加一个右花括号,并缩进四个空格,使其与 字典中的键对齐。

    是在最后一个键—值对后面也加上逗号,为以后在下一行 添加键—值对做好准备。

    5.2 遍历字典

    5.2.1 遍历所有的键值对

    运用for循环:for k, v in user_0.items() ,其中的k,v都是随意命名,但最好要见名知意。

    注意:即便遍历字典时,键—值对的返回顺序也与存储顺序不同。

    favorite_languages = {
        'jen': 'python', 
        'sarah': 'c', 
        'edward': 'ruby', 
        'phil': 'python', 
     } 
    for name, language in favorite_languages.items(): 
        print(name.title() + "'s favorite language is " + 
            language.title() + ".")
    #结果:
    Jen's favorite language is Python. 
    Sarah's favorite language is C. 
    Phil's favorite language is Python. 
    Edward's favorite language is Ruby.
    

    5.2.2 遍历字典中的所有键--keys()

    #1.
    favorite_languages = { 
        'jen': 'python', 
        'sarah': 'c', 
        'edward': 'ruby', 
        'phil': 'python', 
     } 
    friends = ['phil', 'sarah'] 
    for name in favorite_languages.keys(): 
        print(name.title()) 
        
        if name in friends: 
             print(" Hi " + name.title() + 
                 ", I see your favorite language is " + 
                favorite_languages[name].title() + "!")
    #输出结果:
    Edward 
    Phil 
     Hi Phil, I see your favorite language is Python! 
    Sarah 
     Hi Sarah, I see your favorite language is C! 
    Jen
    
    #2.
    favorite_languages = { 
        'jen': 'python', 
        'sarah': 'c', 
         'edward': 'ruby', 
         'phil': 'python', 
     } 
     if 'erin' not in favorite_languages.keys():
            print("Erin, please take our poll!")
    #输出结果:
    Erin, please take our poll!
    

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

    要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。为此,可使用函

    数sorted()来获得按特定顺序排列的键列表的副本。

    注意:<u>这里的顺序并不是按照字典里的顺序,而是按照字典里键的字母顺序。</u>

    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.")
    #结果:
    Edward, thank you for taking the poll. 
    Jen, thank you for taking the poll. 
    Phil, thank you for taking the poll. 
    Sarah, thank you for taking the poll.
    

    5.2.4 遍历字典中的所有值--values()

    返回一个值列表,但不包含任何键。

    #1.提取字典中所有的值,而没有考虑是否重复
    
    for language in favorite_languages.values(): 
        print(language.title())
    #结果:
    Python 
    C 
    Python 
    Ruby
    
    #2.为剔除重复项,可使用集合(set)
    
    favorite_languages = { 
        'jen': 'python', 
         'sarah': 'c', 
         'edward': 'ruby', 
         'phil': 'python', 
     } 
     print("The following languages have been mentioned:") 
    for language in set(favorite_languages.values()): 
         print(language.title())
    #结果:
    The following languages have been mentioned: 
    Python 
    C 
    Ruby
    

    5.3 嵌套

    5.3.1 在列表中存储字典

    问题:字典alien_0包含一个外星人的各种信息,但无法存储第二个外星人的信息,更别说屏幕上

    全部外星人的信息了。如何管理成群结队的外星人呢?

    解决办法:是创建一个外星人列表,其中每 个外星人都是一个字典,包含有关该外星人的各种信息

    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)
    #结果:
    {'color': 'green', 'points': 5} 
    {'color': 'yellow', 'points': 10} 
    {'color': 'red', 'points': 15}
    

    5.3.2 在字典中存储列表

    每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表

    example:一个人可以喜欢多种语言

     favorite_languages = { 
         'jen': ['python', 'ruby'], 
        'sarah': ['c'], 
         'edward': ['ruby', 'go'], 
         'phil': ['python', 'haskell'], 
     }
      for name, languages in favorite_languages.items(): 
        print("\n" + name.title() + "'s favorite languages are:") 
        for language in languages: 
             print("\t" + language.title())
                
    #结果:
    Jen's favorite languages are: 
     Python 
     Ruby 
    Sarah's favorite languages are: 
     C 
    Phil's favorite languages are: 
     Python 
     Haskell 
    Edward's favorite languages are: 
     Ruby 
     Go
    

    5.3.3 字典中存储字典

    example:用户字典里存储每一位用户,每位用户的信息包含其各种字典信息

    users = { 
        'aeinstein': { 
        'first': 'albert', 
        'last': 'einstein', 
        'location': 'princeton', 
         }, 
     
        'mcurie': { 
         'first': 'marie', 
         'last': 'curie', 
        'location': 'paris', 
             }, 
     } 
     
     for username, user_info in users.items(): 
            print("\nUsername: " + username) 
            full_name = user_info['first'] + " " + user_info['last'] 
            location = user_info['location'] 
            
     print("\tFull name: " + full_name.title()) 
     print("\tLocation: " + location.title())
    #结果:
    Username: aeinstein 
     Full name: Albert Einstein 
     Location: Princeton 
    Username: mcurie 
     Full name: Marie Curie 
     Location: Paris
    

    相关文章

      网友评论

          本文标题:第四章 字典

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