pyhton基础知识——字典

1. 字典

  • 在python中,字典用放在花括号{}中的一系列键-值对表示
    • 键-值对是两个相关联的值
    • 键和值之间用冒号分隔,键-值对之间用逗号分隔
    • 获取与键相关联的值,可依次指定字典名和放在方括号内的键
    • >>> alien_0 = {'color':'green'}
      >>> alien_0['color']
      'green'

2. 字典的创建/增/删/改

  • 使用一对空的花括号{}定义一个字典
  • 字典是一种动态结构,可随时在其中添加键值对
  • 可使用del语句删除键值对
  • >>> alien_0 = {}
    >>> alien_0['color'] = 'green'
    >>> alien_0['points'] = 5
    >>> alien_0
    {'color': 'green', 'points': 5}
    >>> alien_0['points'] = 10
    >>> alien_0
    {'color': 'green', 'points': 10}
    >>> del alien_0['points']
    >>> alien_0
    {'color': 'green'}

3. 字典的遍历

3.1 遍历所有的键值对

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

 

3.2 遍历所有的键

 

  • 使用方法keys()可以返回一个列表,其中包含字典中的所有键
  • >>> for name in favorite_languages.keys():
    ...     print(name.title())
    ... 
    Jen
    Sarah
    Edward
    Phil
    >>> if 'erin' not in favorite_languages.keys():
    ...     print("Erin, please take our poll!")
    ... 
    Erin, please take our poll!
  • 获取字典元素的顺序是不可预测的,可以使用函数sorted()来获得按特定顺序排列的键列表的副本
  • >>> for name in sorted(favorite_languages.keys()):
    ...     print(name.title())
    ... 
    Edward
    Jen
    Phil
    Sarah

3.3 遍历所有的值

  • 使用方法values()返回一个值列表,但并没有考虑是否重复
  • >>> for language in favorite_languages.values():
    ...     print(language.title())
    ... 
    Python
    C
    Ruby
    Python
  • 为剔除重复项,可使用集合set(集合类似于列表,但每个元素都必须是独一无二的)
  • >>> for language in set(favorite_languages.values()):
    ...     print(language.title())
    ... 
    Python
    Ruby
    C

4. 嵌套

4.1 在列表中存储字典:字典列表

  • aliens = []
    for i in range(0, 10):
        item = {'color': 'green', 'points': 5, 'speed': 'slow'}
        aliens.append(item)
        
    for alien in aliens[0:3]:
        if alien['color'] == 'green':
            alien['color'] = 'yellow'
            alien['points'] = 10
            alien['speed'] = 'medium'
    
    for alien in aliens[0:5]:
        print(alien)

    运行结果

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

4.2 在字典中存储列表

  • favLanguages = {
        'jen': ['python', 'ruby'],
        'sarah': ['c'],
        'edward': ['ruby', 'go']}
    
    for name, languages in favLanguages.items():
        print("\n"+name.title()+"'s favorite languages:")
        for language in languages:
            print("\t"+language.title())

    运行结果

    Jen's favorite languages:
    	Python
    	Ruby
    
    Sarah's favorite languages:
    	C
    
    Edward's favorite languages:
    	Ruby
    	Go

4.3 在字典中存储字典

  • users = {
        'aeinstein': {
            'first': 'albert',
            'last': 'einstein',
            'location': 'princeton'},
        'mcurie':{
            'first': 'marie',
            'last': 'curie',
            'location': 'paris'}}
    
    for username, userinfo in users.items():
        print("\nUsername: "+username)
        print("\tFull name: "+userinfo['first'].title()+" "+userinfo['last'].title())
        print("\tLocation: "+userinfo['location'].title())

    运行结果

    Username: aeinstein
    	Full name: Albert Einstein
    	Location: Princeton
    
    Username: mcurie
    	Full name: Marie Curie
    	Location: Paris
posted @ 2021-07-19 11:10  bky-16  阅读(57)  评论(0编辑  收藏  举报