zoukankan      html  css  js  c++  java
  • 读书笔记「Python编程:从入门到实践」_6.字典

    6.1 一个简单的字典

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

    6.2 使用字典  

      字典 是一系列键—值对 。每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。

      与键相关联的值可以是数字、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。

      在Python中,字典用放在花括号 {}  中的一系列键—值对表示

      键和值之间用冒号分隔,而键—值对之间用逗号分隔。

      6.2.1 访问字典中的值

      要获取与键相关联的值,可依次指定字典名和放在方括号内的键 dic['key']
      6.2.2 添加键—值对

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

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

      6.2.3 先创建一个空字典

      使用一对空的花括号定义一个字典,再分行添加各个键—值对。例如,下例演示了如何以这种方式创建字典alien_0

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

      6.2.4 修改字典中的值

      要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。例 alien_0['color'] = 'yellow'

      6.2.5 删除键—值对

      使用del 语句将相应的键—值对彻底删除。使用del 语句时,必须指定字典名和要删除的键。

      6.2.6 由类似对象组成的字典

      字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以使用字典来存储众多对象的同一种信息。例如,假设你要调查很多人,

      询问他们最喜欢的编程语言,可使用一个字典来存储这种简单调查的结果,如下所示:

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

    6.3 遍历字典

      6.3.1 遍历所有的键—值对

      for k, v in user_0.items()

      for 语句的第二部分包含字典名和方法items() ,它返回一个键—值对列表。接下来,for 循环依次将每个键—值对存储到指定的两个变量中。
      6.3.2 遍历字典中的所有键

      在不需要使用字典中的值时,方法keys() 很有用。
      6.3.3 按顺序遍历字典中的所有键

      可使用函数sorted() 来获得按特定顺序排列的键列表的副本
      6.3.4 遍历字典中的所有值

      如果你感兴趣的主要是字典包含的值,可使用方法values()

      为剔除重复项,可使用集(set)集合 类似于列表,但每个元素都必须是独一无二的:

    favorite_languages = {
        'jen': 'python',
        'sarah': 'c',
        'edward': 'ruby',
        'phil': 'python',
    }
    
    for k,v in favorite_languages.items():
        print("Key:"+k)
        print("Value:"+v)
    print(favorite_languages.keys())
    print(favorite_languages.values())
    print(sorted(favorite_languages.keys()))
    print(set(favorite_languages.values()))
    Key:jen
    Value:python
    Key:sarah
    Value:c
    Key:edward
    Value:ruby
    Key:phil
    Value:python
    dict_keys(['jen', 'sarah', 'edward', 'phil'])
    dict_values(['python', 'c', 'ruby', 'python'])
    ['edward', 'jen', 'phil', 'sarah']
    {'python', 'ruby', 'c'}
    

    6.4 嵌套

      6.4.1 字典列表

    # 创建一个用于存储外星人的空列表
    aliens = []
    # 创建30个绿色的外星人
    for alien_number in range(30):
        new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}
        aliens.append(new_alien)
    # 显示前五个外星人
    for alien in aliens[:5]:
        print(alien)
    print("...")
    # 显示创建了多少个外星人
    print("Total number of aliens: " + str(len(aliens)))
    {'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'}
    ...
    Total number of aliens: 30
    

      6.4.2 在字典中存储列表

      需要将列表存储在字典中,而不是将字典存储在列表中

    favorite_languages = {
        'jen': ['python', 'ruby'],
        'sarah': ['c'],
        'edward': ['ruby', 'go'],
        'phil': ['python', 'haskell'],
        }
    for name, languages in favorite_languages.items():
        print("
    " + name.title() + "'s favorite languages are:")
        if len(languages) > 1:
            for language in languages:
                print("	" + language.title())
        else:
            print("	" + languages[0].title())
    Jen's favorite languages are:
    	Python
    	Ruby
    
    Sarah's favorite languages are:
    	C
    
    Edward's favorite languages are:
    	Ruby
    	Go
    
    Phil's favorite languages are:
    	Python
    	Haskell
    

      6.4.3 在字典中存储字典

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

    users = {
        'aeinstein': {
            'first': 'albert',
            'last': 'einstein',
            'location': 'princeton',
            },
        'mcurie': {
            'first': 'marie',
            'last': 'curie',
            'location': 'paris',
            },
        }
    for username, user_info in users.items():
        print("
    Username: " + username)
        full_name = user_info['first'] + " " + user_info['last']
        location = user_info['location']
        print("	Full name: " + full_name.title())
    Username: aeinstein
    	Full name: Albert Einstein
    
    Username: mcurie
    	Full name: Marie Curie
  • 相关阅读:
    C#编写的windows程序随系统启动
    CentOS 6.0修改ssh远程连接端口
    C# 控件缩写大全+命名规范+示例
    记录点滴
    C++封装,继承,多态,友元
    策略模式
    OpenGL入门
    C++四种类型转换
    观察者模式Observer Pattern
    双向链表std::list和单向链表std::forward_list
  • 原文地址:https://www.cnblogs.com/changxinblog/p/9771876.html
Copyright © 2011-2022 走看看