zoukankan      html  css  js  c++  java
  • python七类之字典详解

    一、字典

    一、关键字:dict

    1.字典是唯一的键值对数据,其表现形式:   dic  =  {键:值},​字典里的键必须保证是唯一的

    2.键必须是不可变的数据类型:

        ​a、故列表是不能当键的

        b、所以元组(内部没有可变的数据类型)是可以当键的​.

    ​    c、而字典也不可以当字典的键的,因为字典是可变的.

    3.值是没有要求的.​

    ​ dic = {'Key':1,1:'True',False:'asdf',{1,2,3}:[1,2,3,4]}​

    注:​len()是一个python的内置函数,查询数据类型的长度的。什么数据类型都可以用​.

    4.不可变数据类型:(可哈希)

         数字 字符串 元组 布尔值

    5.可变数据类型:(不可哈希)

        列表 字典​​

    注:字典是无序的,但是py36是有序打印的,3.5及以下版本是无序打印​.

    二、增加:

    1.dic[' '] = ' '                        #很暴力,直接添加就好了.#如果这个键不在字典中就是添加,在字典中就是修改

    #增加:
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    dic['k4'] = 'v4'
    dic['k3'] = 'v3'
    dic.setdefault('k5')
    print(dic)

    2.dic.setdefault(' 键',' 值') #如果在列表中键存在就不进行添加​​,不存在进行添加.如果不写值就默认值为None

    dic = {}
    dic['歌手'] = '汪峰'
    print(dic)
    dic.setdefault('王菲','歌手')
    print(dic)
    dic.

    三、删除:

    注:字典中没有remove()方法 注意!!!!!!!!!!!!!!!!!

    .pop(键)​                 #删除这个键所对应的键值对,有返回值 #返回这个键所对应的值

    .popitem()              #随机删除,在3.6版本以上删除最后一个,3.5及以下版本随机删除有返回值 #返回的是这个键所对应的键值对,一元组的形式输出.第一个是键,第二个是值

    del dic                    #删除整个字典

    del dic['键']             #通过键删除一个键值对​​​​

    .clear()                   #清空​

    注意(此处神坑):

    #字典在for循环中是不能进行删除的但是可以用方法规避在原字典使用for循环

    dic = {'a':1,'b':2}
    dic1 = {}                       #通过建立一个新的字典
    for i in dic:
      dic1[i] = dic[i]             #规避for的循环机制
    for i in dic1:
      dic.pop(i)
      print(dic)

    四、改:​

    dic['键']                  #如果这个键在字典中就是修改,不在就是添加

    .update('键':'值')    #更新  如果这个键在字典中就是修改,不在就是添加

    五、查:

    .get('键',返回值)​​   #查询的是键所对应的值,如果没有该建,则默认返回None,返回值可以自己定义.​

    print(dic['键'])       #也是查询键所对应的值,但是没有该键,则报错.​

    六、字典的其他操作:

    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}​
    
    for i in dic:
    
    print(i)    #遍历的是字典的键
    
    if i in dic:
    
    print(dic[i])​​   #没有返回值
    
    print( dic.get(i))   #有返回值

    七、字典独有的方法:

    .keys()         #对应字典的键   以元组的方式将键放在一个高仿列表里

    .value()       #对应字典的值  一元组方式将值放在一个高仿列表里

     .items()        #对应字典的键值对 以元组形式将键值对放在一个高仿列表里​​​​​​​之所以叫高仿列表是因为无索引所以叫高仿

    for k,v in dic.items():        #通过解构赋值
    
         print('这是键',k)
    
         print('这是值',v)​

    八、解构赋值:​

    a,b = 1,2 即将ab分别赋值1和2 ,位置对应即可。

    1.数字:

    ​a,b = 1,2
    
    print(a,b)

    结果:

    1  2

    2.元组:

    a,b = ('你好','汪峰')
    
    print(a,b)

    结果:

    你好 汪峰

    3.列表:

    a,b = ['你好','汪峰']
    
    print(a,b)

    结果:

    你好 汪峰

    4.字典:

    a,b = {'汪峰':'男的','章子怡':'女的'}
    
    print(a,b)

    结果:

    汪峰 章子怡

    例:​ 用一行代码将ab的值调换 a=10 b=20

    利用解构赋值即可:

    a,b = b, a
    
    print(a,b)​​

    ​这个解构赋值适用于数字,字符串,列表,元组,字典等数据类型​

    八、字典的嵌套:

    dic1 = {
     'name':['alex',2,3,5],
     'job':'teacher',
     'oldboy':{'alex':['python1','python2',100]}
     }
    dic1['name'].append('wusir')
    print(dic1)
    s = dic1['name'][0].title()
    print(s)
    dic1['oldboy']['alex'].remove('python2')
    print(dic1)  
    字典是无序的可变可迭代的数据类型
  • 相关阅读:
    LeetCode(62)Unique Paths
    4_蒙特卡罗算法求圆周率PI
    CentOS安装sctp协议
    3_寻找假币问题(分治法)
    Gdb调试命令
    高阶函数 -------JavaScript
    方法 -------JavaScript
    函数定义和调用 -------JavaScript
    iterable -------JavaScript
    Map和Set -----JavaScript
  • 原文地址:https://www.cnblogs.com/sanzangdashi3/p/9857118.html
Copyright © 2011-2022 走看看