zoukankan      html  css  js  c++  java
  • 字典操作

    一、字典是无序的,字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,且key必须是唯一的,格式如下所示

      字典:

        dict = {'a':1,'b':'123'}

      字典嵌套字典:

        dict = {'a':{'abc':123},'b':123}

      字典嵌套列表:

        dict = {'a':[1,2,3,4],'b':123}

    二、遍历字典

    1、for key,value in dict.items():

      print(key,value)

    例子:

      dict = {'a':1,'b':'123'} 

      for key,value in dict.items():
        print(key,value)

      结果:

        a 1
        b 123

    2、for key in dict:                         #效率高,推荐使用    

        print(key,dict[key])

    例子:dict = {'a':1,'b':'123'} 

      for key in dict:
        print(key,dict[key])

      结果:

        a 1
        b 123

    三、取元素

      1、根据key值取出value值,如果key值不存在,会报错

        用法:dict[key] = value

        如:dict = {'a':1,'b':'123'}

        print(dict['a']) -> 1

      2、get:如果key值不存在,不会报错

        用法:get(key)

        如:dict = {'a':1,'b':'123'}

        print(dict.get('b')) -> 123

    2、删除

      dict = {'a':1,'b':'123'}

      1、clear

      用法:D.clear() -> None. Remove all items from D.

      如:

        dict.clear()

        print(dict) -> {}

      2、del

        如:del dict['a']

          print(dict) ->{'b':'123'}

      3、pop

        如:dict.pop('a')

        print(dict) ->{'b':'123'}

      4、popitem:D.popitem() -> (k, v),随机删除,返回key和value

        

    3、添加

      根据key值添加,如果key存在,修改value值,如果key不存在,新建一个key:value的对应关系

      如dict = {'a':1,'b':'123'}
      dict['a'] = '测试'
      dict['c'] = '测试1'

      print(dict) ->{'c': '测试1', 'a': '测试', 'b': '123'}

    4、其它

    1、values

    用法:D.values() -> an object providing a view on D's values

    如:

    dict = {'a':1,'b':'123'}
    print(dict.values())  ->dict_values([1, '123'])

    同理还有D.keys()

    2、setdefault

    用法:D.setdefault(key,value),如果key值存在,返回value的值,key值不存在,则创建D[key] = value,并返回value的值

    如key存在:

      dict = {'a':1,'b':'123'}
      print(dict.setdefault('a','测试'))   ->1
      print(dict)                               ->{'a': 1, 'b': '123'}

     key不存在:

      dict = {'a':1,'b':'123'}
      print(dict.setdefault('c','测试')) ->测试
      print(dict)                              ->{'a': 1, 'c': '测试', 'b': '123'}

    根据(key值存在,不修改value的值)这个特性,也可以用来初始化字典:

    代码示例:

    d = {}
    d.setdefault('a',[]).append(1)
    d.setdefault('b',[]).append(2)
    d.setdefault('a').append(3) #当key存在,添加元素时可以不用加[]
    print(d) ->{'b': [2], 'a': [1, 3]}

     3、update:更新字典,

       用法:D.update(E) -> None.更新D字典,如果E中的key在D中存在,则更新value, D[k] = E[k]

        E中的key在D中不存在,则新建,for k in E: D[k] = E[k]

       如:

        dict = {'a':1,'b':'123'}

        dict1 = {'a':'测试','c':'abc'}
        dict.update(dict1)
        print(dict)                 ->{'c': 'abc', 'a': '测试', 'b': '123'}

     4、fromkeys:初始化一个新列表

        c = dict.fromkeys([6,7,8],['a','b'])

        print(c) ->{8: ['a', 'b'], 6: ['a', 'b'], 7: ['a', 'b']}

     一些dict的高级用法,详见分类python高级特性字典的高级特性

  • 相关阅读:
    AgileEAS.NET平台视频会议培训第二辑简单插件开发应用演练(速度下载)
    给大家分享一个培训的PPT:面向构件的组织级开发模式探讨
    AgileEAS.NET SOA 中间件平台工作流系统介绍
    “医疗信息化行业之中的联发科” 我们在医疗行业中的定位及目标
    AgileEAS.NET SOA 平台5.1开发包介绍
    实例演示如何使用AgileEAS.NET SOA平台工作流进行业务流程自定义
    Silverlight企业应用开发实践AgileEAS.NET平台5.0 Silverlight支撑预览
    AgileEAS.NET平台视频会议培训第三辑插件的安装、配置以及账户权限系统演练
    Stream Part.6
    Stream Part.7
  • 原文地址:https://www.cnblogs.com/zj-luxj/p/6822953.html
Copyright © 2011-2022 走看看