zoukankan      html  css  js  c++  java
  • python基础数据类型字典(dict)

    python基础数据类型--字典(dict)

    一、字典的定义和特性

    定义:   {'key1':'value1'}

    1.键与值之间用 冒号 ‘:’ 分割

    2.项与项之间用 逗号 ‘,’ 分割

    特性:


    1.字典dict的key必须是不可变数据类型:元组、布尔值、数值、字符串,必须唯一
    2.字典dict的value可以是任意数据类型
    3.字典dict的优点:
      二分查找查询
      存储大量的关系型数据
    4.字典的特点: 无序的——>无索引(python3.5及以前版本)

    二、字典的创建和常见操作

    字典的创建

    person = {'name':'alex','age':'20'}
    或 person = dict(name = 'alex',age = 20)
    或 person = dict({'name':'alex','age':'20'})

      

    ======》》》fromkeys

    描述
    Python 字典 fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
    语法
    fromkeys()方法语法:
    dict.fromkeys(seq[, value]))
    参数
    seq -- 字典键值列表。
    value -- 可选参数, 设置键序列(seq)的值。
    返回值
    该方法返回列表。
    实例
    以下实例展示了 fromkeys()函数的使用方法:
    #!/usr/bin/python3
    
    seq = ('name', 'age', 'sex')
    
    dict = dict.fromkeys(seq)
    print ("新的字典为 : %s" %  str(dict))
    
    dict = dict.fromkeys(seq, 10)
    print ("新的字典为 : %s" %  str(dict))
    以上实例输出结果为:
    新的字典为 : {'age': None, 'name': None, 'sex': None}
    新的字典为 : {'age': 10, 'name': 10, 'sex': 10}
    

    课堂代码 ------------[1,2,3]是一个可以迭代的,拿出来作为后面‘春天’的key 重新建立一个字典

    dic = dict.fromkeys([1,2,3],'春天')    
    print(dic)

    >>>
    {1: '春天', 2: '春天', 3: '春天'}

     字典的操作

    键、值、键值队

      1、dic.key()  返回一个包含字典所有key的列表

      2、dic.value() 返回一个包含字典所有value的列表

      3、dic.items() 返回一个包含字典所有(键、值)元组的列表

      4、dic.iteritems() 、dic.iterkeys() 、dic.itervalues() 与他们对应的是非迭代方法一样,不同的是返回一个迭代子,而不是一个列表

    新增-------两种

    dic1 = {'age':'18','name':'jin','sex':'man'}

    dic1['high'] = 187  ####  没有的时候添加,有的时候覆盖
    >>>
    {'age': '18', 'name': 'jin', 'sex': 'man', 'high': 187}
    

     

    dic1.setdefault('high',187)   #####   setdefault  如果没有键,则增加,且如果不写值vlaue,则默认None
    dic1.setdefault('age',20)     #####    setdefault   有  不作任何改变
    >>>
    {'age': '18', 'name': 'jin', 'sex': 'man', 'high': 187}

     

    删除 --------四种

    1.pop()   有返回值,按键删除,返回值可以设置为默认

    dic = {'age': 26, 'name': 'jin', 'sex': 'male'}

    ------------------------------------------------------------------- dic.pop('name1','No KEY') # 如果有没键,不报错,返回值会返回后面的参数文本 print(dic.pop('name1','No KEY')) >>> 'No KEY' print(dic) >>> {'name': 'yang', 'sex': 'male', 'age': 26}
    ---------------------------------------------------------------

    dic.pop('age') # 如果有键,则删除对应的键值对;返回值会返回删除掉的值value
    print(dic.pop('age'))
    >>> 26
    print(dic)
    >>> {'sex': 'male', 'name': 'yang'}

    2.popitem()   随机删除

    dic.popitem() # 随机删除字典中的一组键值对
    >>> {'name': 'yang', 'sex': 'male'}
    

     

    3.清空列表

    dic.clear() # 清空字典
    >>> {}
    

    4.del 删除

    del dic['height']                # 如果没有键,则报错
    >>> Traceback (most recent call last):
          File "D:******.py", line 31, in <module>
            del dic['height']                # 如果没有键,则报错
        KeyError: 'height'
    --------------------------------------------------------- del dic['age'] # 如果有键,则删除对应的键值对 >>> {'name': 'yang', 'sex': 'male'}

    改---------两种

    1. ---------------同增

    dic['height'] = 185 # 如果没有键,则增加
    >>> {'height': 185, 'age': 26, 'sex': 'male', 'name': 'yang'}
    
    dic['age'] = 18 # 如果有键,则修改
    >>> {'sex': 'male', 'name': 'yang', 'age': 18}
    

    2.update()     更新

    dic = {'name':'xiaoqiang','age':20}
    dic1 = {'weight':10,'name':'qiao'}
    dic.update(dic1)
    print(dic)       #有的做覆盖,没有的做更新
    print(dic1)      #无变化
    
    
    >>>
    {'name': 'qiao', 'age': 20, 'weight': 10}
    {'weight': 10, 'name': 'qiao'}
    

     

    查----5种

    dic1 = {'age':18,'name':'xiaoqiang','sex':'male',}


    # 按‘键’查询 key() for i in dic1: print(i) for i in dic1.keys(): print(i)

    #按‘值’查询 values() for i in dic1.values(): print(i)


    # 按‘键、值’查询items() for i in dic1.items(): print(i)


    # 按键和值查询 for k,y in dic1.items(): print(k,y)
    dic.get('height','No KEY') # 如果没有键,则返回值为后面的参数文本
    print(dic.get('height','No KEY'))
    >>> No KEY
    

      

    print(dic['height']) # 如果有没键,则报错
    >>> Traceback (most recent call last):
          File "D:********.py", line 79, in <module>
            print(dic['height']) # 如果有没键,则报错
        KeyError: 'height'
    

    字典的嵌套  

    dic = {
        'name':['a','b','c'],
        'age':43,
        'addr':{
            '1':1,
            '2':2,
        }
    }
    
    # 需求:在addr中加入'3':3这个键值对
    dic['addr']['3'] = 3
    print(dic)
    
  • 相关阅读:
    平凡的母亲
    从一道笔试题谈算法优化(下)
    Lua manual翻译——第三章第七、八、九节
    [VC/MFC]一条语句实现程序运行时隐藏窗口
    《〈XNova/OGame〉源码笔记》(5)
    Fedora7,8,9 安装截图
    电信业重组以及3G牌照的发放
    FRC阅读软件及打印
    VC++学习的一些资源
    Perl 学习心得体会
  • 原文地址:https://www.cnblogs.com/a438842265/p/8463659.html
Copyright © 2011-2022 走看看