美文网首页
8 再识Python里的字典

8 再识Python里的字典

作者: 陪伴_520 | 来源:发表于2018-12-29 20:26 被阅读0次
    date 2018年12月29日
    #前面学习的字典只能存储一个外星人的信息,如果是好多外星人呢?
    #或者说一个字典,存储某一类信息,如果要存储好多类信息呢?这时候需要我们用列表来存储字典
    #例如下面的程序
    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)  
    #当然这是很一般的情形,本质上一个字典也可以实现
    #下面我们来看更符合实际的一种情况
    

    result

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

    #用range()函数生成外星人的代号0-29(注意range()是从0开始的)
    aliens = [] #let us creat an empty list first 
    
    for alien_nummber in range(30): 
        new_alien = {'color ': 'green', 'points': 5, 'speed': 'slow'}
        aliens.append(new_alien)  # fill new_alien in aliens *append is '附件' in Chinese
    #every aliens has the same characteristic
    
    #try to show the top 5 aliens
    for alien in aliens[: 5]:
        print(alien)
    print('...')
    
    #show the number of aliens you have created
    number = len(aliens)
    print("The number of aliens: " + str(number))
    

    result

    {'color ': 'green', 'points': 5, 'speed': 'slow'}
    {'color ': 'green', 'points': 5, 'speed': 'slow'}
    {'color ': 'green', 'points': 5, 'speed': 'slow'}
    {'color ': 'green', 'points': 5, 'speed': 'slow'}
    {'color ': 'green', 'points': 5, 'speed': 'slow'}
    ...
    The number of aliens: 30

    #try to modify the top 3 aliens characteristic
    aliens = [] #same example above 
    for alien_nummber in range(0,30): 
        new_alien = {'color': 'green', 'speed': 'slow', 'points': 5}
        aliens.append(new_alien) 
    #Now let us modify...
    for alien in aliens[0 : 3]:
        if alien['color'] is 'green': 
            alien['color'] = 'yellow'
            alien['speed'] = 'medium'
            alien['points'] = 10
    #print the top 5 aliens and detect the change
    for alien in aliens[0 : 5]:
        print(alien)
    print('...')
    #Many inexplicable error! such as the 'space','the colon' is different in Chinese and English
    

    result

    {'color': 'yellow', 'speed': 'medium', 'points': 10}
    {'color': 'yellow', 'speed': 'medium', 'points': 10}
    {'color': 'yellow', 'speed': 'medium', 'points': 10}
    {'color': 'green', 'speed': 'slow', 'points': 5}
    {'color': 'green', 'speed': 'slow', 'points': 5}
    ...

    #On the contrary,how to store lists in a dictionary?
    #Let's see the following example
    #Information about Pizza 
    pizza = {
        'crust': 'thick',  #crust means '壳',topping means '配料'
        'toppings': ['mushrooms', 'extra cheese'] #store a list in a dictionary
        }
    
    print("You ordered a " + pizza['crust'] + "-crust pizza" + "with the following toppings:")
    
    for topping in pizza['toppings']:
        print("\t" + topping)
    

    result

    You ordered a thick-crust pizzawith the following toppings:
    mushrooms
    extra cheese

    #Count up students' scores
    grade = {
        'Shi shang':['Math - 98', 'Chinese - 96'], #Bear in mind this comma
        'Ding shiyu':['Math - 97','Chinese - 95'], #comma means '逗号'
        'Lv yuetong':['Math - 100','Chinese - 98']
    } 
    for name, scores in grade.items():
        print("\n" + name.title() + "'s final exam grades are:")
        for score in scores:
            print("\t" + score)
    

    result

    Shi Shang's final exam grades are:
    Math - 98
    Chinese - 96

    Ding Shiyu's final exam grades are:
    Math - 97
    Chinese - 95

    Lv Yuetong's final exam grades are:
    Math - 100
    Chinese - 98

    #Use a dictionary in dictionary
    #the same example above 
    grade = {
        'math' : {'Shishang': 98, 'Lvyuetong': 100, 'Dingshiyu': 97},
        'chinese' : {'Shishang': 96, 'Lvyuetong': 98, 'Dingshiyu': 97}
    }  # Notice the form of the definition above
    for subjects, scores in grade.items():
        print(subjects)
        print(scores)
    
    

    result

    math
    {'Shishang': 98, 'Lvyuetong': 100, 'Dingshiyu': 97}
    chinese
    {'Shishang': 96, 'Lvyuetong': 98, 'Dingshiyu': 97}

    5e20d8e15336d1261281cb01eb31f7ef.jpeg

    相关文章

      网友评论

          本文标题:8 再识Python里的字典

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