zoukankan      html  css  js  c++  java
  • 字典

    字典介绍

    生活中的字典

    软件开发中的字典

    根据键访问值

    字典的常见操作(1)

      1.修改元素

      2.添加元素

      3.删除元素

    字典的常见操作(2)

      1.len()

      2.keys

      3.values

      4.items

      5.has_key

    遍历

    字典介绍

    #如果有列表
        namelist = ['zhangsan','lisi','wangwu']
    
    #需要对“lisi”这个名字写错了,通过代码修改
        namelist[1] = 'sunliu'
    
    #如果列表的顺序发生了变化,如下
        namelist = ['zhangsan','lisi','wangwu']
    
    #此时就需要修改下标,才能完成名字的修改
        namelist[0] = 'sunliu'

    有没有办法,既能存储多个数据,还能在访问元素的很方便就能够定位到需要的那个元素呢?

    答案:字典

    另一个场景:

    学生信息列表,每个学生信息包括学号、姓名、年龄等,如何从中找到某个学生的信息?

    >students = [
          [1001,'zhangsan',20],
          [1002,'lisi',10],
          [1003,'wangwu',18],
    ]

    2.软件开发中的字典

    变量info为字典类型:

    info = {'name':班长,‘id’:100,'sex':'f'}

    总结:

    *字典和列表一样,也能存储多个数据

    *列表中找某个元素时,是根据下标进行的

    *字典中找某个元素时,是根据“名字”(就是冒号:前面的那个值,例如上面代码中的‘name’、‘id’、‘sex’)

    *字典的每个元素由2部分组成,键:值。

     例如‘name’:‘班长’,’name‘为键,’ 班长‘为值

    3.根据键访问值

    info ={'name':'班长''id':100,'sex':'f'}
    print(info['name'])
    print(info['sex'])
    
    结果:
    班长
    f

    若访问不存在的键,则会报错:

    >info['age']
    Traceback (most recent call last)
       File "<stdin>",line 1, in<module>
    KeyError:'age'

    在我们不确定字典中是否存在某个键而又想获取其值时,可以使用get方法,还可以设置默认值:

    >age = info.get('age')
    >age  #'age'键不存在,所以age为None
    >type(age)
    <type  'NoneType>
    >age = info.get('age',18)  #若info中不存在‘age’这个键,就返回默认值1
    >age
    18

    字典中常见操作1

    1.修改元素

    解释:字典中的每个元素的数据都是可以修改的,只要通过key找到,即可修改

    info = {'name':'班长',’id‘:100,’sex‘:’f‘}
    newid = input(“请输入新的学号”)
    info['id'] = int(newid)
    print('修改之后的id为 %d' %info['id'])

    2.添加元素

    解释:访问不存在的元素

    info = {'name':'班长',‘sex’:‘f’}
    print('id为 %d ' %info['id'])
    
    #则会报错

    如果在使用变量名['键'] = 数据时,这个‘键’在字典中,不存在,那么就会新增这个元素

    案例:添加新的元素

    info = {'name':'班长',‘sex’:‘f’}
    #print('id为:%d' %info['id'])  #程序会中断运行,因为访问了不存在的键
    
    newid = input(‘请输入新的学号’)
    info['id'] = newid
    print('添加之后的id为:%d' %info['id'])
    
    #结果
    请输入新的学号100
    添加之后的id为:100

    3.删除元素

    解释:对字典进行删除操作,有以下几种:

    *del

    *clear

    案例:del删除指定的元素

    info = {'name':'班长',‘sex’:‘f’}
    print(‘删除前,%s’ %info['name'])
    del info['name']
    print('删除后,%s ' %info['name'])
    
    #则会发现,删除后,是不能进行访问的

    案例:del删除整个字典

    info = {'name':'zhangsan','sex':'f','address':'china'}
    print(‘删除前,%s’ %info)
    del info
    print(‘删除后,%s’ %info)

    案例:clear清空整个字典

    info = {'name':'zhangsan','sex':'f','address':'china'}
    print('清空前,%s' %info)
    info.clear()
    print('清空后,%s' %info)
    
    #运行结果:
    清空前,{'name':'zhangsan','sex':'f','address':'china'}
    清空后,{}

    字典的常见操作2

    1.len()

    作用:测量字典中,键值对的个数

    >dict = {"name":'zhangsan','sex':'f'}
    >len(dict)
    2

    2.keys

    作用:返回一个包含字典所有KEY的列表

    >dict = {"name":'zhangsan','sex':'f'}
    >dict.keys()
    ['name','sex']

    3.values

    作用:返回一个包含字典所有value的列表

    >dict = {'name':'zhangsan','sex':'f'}
    >dict.values()
    ['zhangsan','f']

    4.items

    作用:返回一个包含所有(键,值)元组的列表

    >dict = {"name":'zhangsan','sex':'f'}
    >dict.items()
    [('name','zhangsan'),('sex','f')]

    5.has_key

    dict.has_key(keu)如果key在字典中,返回True,否则返回False

    >dict = {"name":'zhangsan','sex':'f'}
    >dict.has_key('name')
    True
    >dict.has_key('phone')
    False
  • 相关阅读:
    Entity Framework EF6使用 MySql创建数据库异常解决办法
    在c#中使用bitblt显示图片
    百度指数完美采集器
    使用HtmlAgilityPack解析Html(非常好用)
    线程的暂停与继续
    webform 中使用ajax
    OkHttp+Stetho+Chrome调试android网络部分(原创)
    android最佳实践的建议(翻译自android-best-practices)
    Android最流行的网络框架(原创)
    android studio 中配置androidAnnotation 的新版正确配置
  • 原文地址:https://www.cnblogs.com/FlameLuo/p/9693287.html
Copyright © 2011-2022 走看看