zoukankan      html  css  js  c++  java
  • 《Python编程从入门到实践》_第六章_字典

    一个简单的字典

    #用户信息
    user = {'name':'Frank','age':'23','city':'shanghai'}
    print(user['name'])
    print(user['age'])
    print(user['city'])
    #运行结果
    Frank
    23
    shanghai

    字典的结构

    在python里面,字典就是一系列的 键-值,每个值都与一个值是一一对应的,键可以是数字、字符串、列表和字典。实际上,可以将任何python对象用作字典的值。

    使用字典

    访问字典中的值
    要获取与键相关的值,可依次指定字典名和放在方括号内的键
    #用户信息
    user = {'name':'Frank','age':'23','city':'shanghai'}
    print(user)
    user['hobby']='reading'
    print(user)
    #运行结果
    {'name': 'Frank', 'age': '23', 'city': 'shanghai'}
    {'name': 'Frank', 'age': '23', 'city': 'shanghai', 'hobby': 'reading'}

    添加键-值对

    字典是一种动态结构,可以随时添加,可依次指定字典名、用方括号括起来的键和对应的值

    #用户信息
    user = {'name':'Frank','age':'23','city':'shanghai'}
    print(user)
    user['hobby']='reading'
    print(user)
    #运行结果
    {'name': 'Frank', 'age': '23', 'city': 'shanghai'}
    {'name': 'Frank', 'age': '23', 'city': 'shanghai', 'hobby': 'reading'}
    修改值
    给键对应值的重新赋值就可以了
    #用户信息
    user = {'name':'Frank','age':'23','city':'shanghai'}
    print(user)
    user['city']='nanjing'
    print(user)
    #运行结果
    {'name': 'Frank', 'age': '23', 'city': 'shanghai'}
    {'name': 'Frank', 'age': '23', 'city': 'nanjing'}

    删除键-值对

    删除的键值对永远消失了

    #用户信息
    user = {'name':'Frank','age':'23','city':'shanghai'}
    print(user)
    del user['city']
    print(user)
    #运行结果
    {'name': 'Frank', 'age': '23', 'city': 'shanghai'}
    {'name': 'Frank', 'age': '23'}

    常用的格式

    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        }
    print(favorite_languages)
    #运行结果
    {'Jen': 'python', 'Frank': 'c++', 'Tom': 'JAVA'}

    最后一个键值对后面可以加上一个逗号,也可以不加

    遍历字典

    要是for循环遍历字典,可以使用两个变量,用于存储键-值。方法items()返回一个键-值队列表。

    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        'Sabar':'python',
        'Bob':'ruby',    
        }
    for k,v in favorite_languages.items():
        print('
    key: ',k)
        print('value: ',v)
    #运行结果
    
    key:  Jen
    value:  python
    
    key:  Frank
    value:  c++
    
    key:  Tom
    value:  JAVA
    
    key:  Sabar
    value:  python
    
    key:  Bob
    value:  ruby

    如果只需要遍历键呢?
    可以使用方法keys(),遍历字典时,默认遍历所有的键,因此如果不加keys(),并不会影响输出,加keys()可以便于代码的阅读和理解

    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        'Sabar':'python',
        'Bob':'ruby',    
        }
    for name in favorite_languages.keys():
        print('
    name: ',name)
    #运行结果
    name:  Jen
    name:  Frank
    name:  Tom
    name:  Sabar
    name:  Bob

    怎么对键排排队?

    这里我们就学到之前用的函数sorted(),临时的排队。

    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        'Sabar':'python',
        'Bob':'ruby',    
        }
    for name in sorted(favorite_languages.keys()):
        print('
    name: ',name)
    #运行结果
    name:  Bob
    name:  Frank
    name:  Jen
    name:  Sabar
    name:  Tom

    遍历字典中所有值

    如果你只对字典中的值感兴趣,可以是用方法value()

    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        'Sabar':'python',
        'Bob':'ruby',    
        }
    for value in favorite_languages.values():
        print(value)
    #运行结果
    python
    c++
    JAVA
    python
    ruby
    如上面的运行结果,我们看到了有重复的值,那么如何消除重复的值?
    调用set()即可!
    #最喜欢的语言
    favorite_languages = {
        'Jen':'python',
        'Frank':'c++',
        'Tom':'JAVA',
        'Sabar':'python',
        'Bob':'ruby',    
        }
    for value in set(favorite_languages.values()):
        print(value)
    #运行结果
    python
    JAVA
    c++
    ruby

    嵌套

    有的时候,你需要将字典存储在列表里面,有的时候你需要将裂变存储在字典里面,有的时候你也许会将字典存储在字典里面,这种就称为嵌套。
    在列表中放入字典
    #创建10个绿色的外星人
    aliens = []   #创建列表用来装外星人
    for alien_number in range(10):
        new_alien = {'color':'green','speed':'low','points':5}
        aliens.append(new_alien)
    for alien in aliens[:5]:  #显示前5个外星人属性
        print(alien)
    print("....")
    print(aliens[0]['color']) #显示第一个外星人的颜色
    #运行结果
    {'color': 'green', 'speed': 'low', 'points': 5}
    {'color': 'green', 'speed': 'low', 'points': 5}
    {'color': 'green', 'speed': 'low', 'points': 5}
    {'color': 'green', 'speed': 'low', 'points': 5}
    {'color': 'green', 'speed': 'low', 'points': 5}
    ....
    green

    在字典中存储列表

    #最喜欢的语言
    favorite_languages = {
        'jen':['python','c++','Java'],
        'frank':['python','golang'],
        'tom':['c','PHP','python'],
        }
    for name,languages in favorite_languages.items():   #这里我们使用了languages来存列表的值
        print("
    " + name.title() + "'s favorite languages are:")
        for language in languages:                      #使用for循环遍历语言列表
            print("	" + language.title())
    #运行结果
    Jen's favorite languages are:
        Python
        C++
        Java
    Frank's favorite languages are:
        Python
        Golang
    Tom's favorite languages are:
        C
        Php
        Python

    在字典里面存储字典

    #信息字典
    user = {
        'aeinstein':{
            'first':'albert',
            'last':'einstein',
            'location':'princeton',
                     },
        'mcurie':{
            'first':'marie',
            'last':'curie',
            'location':'paris',
                 },
            }
    for username,user_info in user.items():
        print("
    Username:",username)
        fullname = user_info['first'] + ' ' +user_info['last']
        location = user_info['location']
        print("	Full name:" + fullname.title())
        print("	Location:" + location.title())
    #运行结果
    Username: aeinstein
        Full name:Albert Einstein
        Location:Princeton
    Username: mcurie
        Full name:Marie Curie
        Location:Paris
  • 相关阅读:
    Docker最全教程之使用Tencent Hub来完成CI(九)
    程序员十大热门flag,有你的吗?
    互联网寒冬,阿里Ant Design还开坑,程序员该何去何从?
    Docker最全教程——从理论到实战(八)
    开源库Magicodes.Storage正式发布
    Docker最全教程——从理论到实战(七)
    开源库支付库Magicodes.Pay发布
    产品经理如何避免被程序员打?
    Docker最全教程——从理论到实战(六)
    如何解决input file 选取相同文件后,change事件不起作用解决方法
  • 原文地址:https://www.cnblogs.com/liubinsh/p/6942794.html
Copyright © 2011-2022 走看看