zoukankan      html  css  js  c++  java
  • Python 数据类型的操作——字典

    字典


    字典是无序的
    字典关联性强
    字典元素为键值对 且 键 唯一 键 是 可哈西的(不可变数据类型:int str bool tuple)
    不可哈西(list dict set)
    字典是唯一一个映射的数据类型

    1 dic_1 = {'name':'Tom','age':20}
    2 dic_2 = {'class_1':['Tom','xiaoming','ligang'],'class_2':['张三','李四','王五']}
    3 
    4 键是唯一的  
    5 dic = {'name':'Tom','name':'李刚','age':20}
    6 print(dic)    #两个'name'

    一、增

    dic[key] = value

    原字典已经存在key 覆盖

    如果没有,则添加

    1 dic = {'name':'Tom','son':'李刚','age':20}
    2 dic['job'] = 'teacher'
    3 print(dic)
    4 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'job': 'teacher'}
    5 dic = {'name':'Tom','son':'李刚','age':20}
    6 dic['son'] = '张三'
    7 print(dic)
    8 # {'name': 'Tom', 'son': '张三', 'age': 20}

    setdefault(self, key, default = None)

    键没有,添加

    已经有键,不操作

    1 dic = {'name':'Tom','son':'李刚','age':20}
    2 dic.setdefault('hobby')                          #default没有的情况,默认为None
    3 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'hobby': None}          #None  就是空   分配给一个特殊的所有的空的公共内存空间
    4 dic = {'name':'Tom','son':'李刚','age':20}
    5 dic.setdefault('hobby','girls')
    6 # {'name': 'Tom', 'son': '李刚', 'age': 20, 'hobby': 'girls'}
    7 dic = {'name':'Tom','son':'李刚','age':20}
    8 dic.setdefault('name','王五')                        #字典中已经有'name'  key ,就不对字典做任何修改
    9 # {'name': 'Tom', 'son': '李刚', 'age': 20}      #

    二、删

    pop(self, key)

    通过键删除

    如果键不存在,报错

     1 dic = {'name':'Tom','son':'李刚','age':20}
     2 print(dic.pop('name'))                    #通过键删除
     3 print(dic)
     4 # Tom
     5 # {'son': '李刚', 'age': 20}
     6 
     7 dic = {'name':'Tom','son':'李刚','age':20}
     8 print(dic.pop('city'))                             #如果键不存在,报错  KeyError:***
     9 print(dic)
    10 
    11 # Traceback (most recent call last):
    12 #   File "D:/Demo/test2.py", line 2, in <module>
    13 #     print(dic.pop('city'))
    14 # KeyError: 'city'
    15 
    16 dic = {'name':'Tom','son':'李刚','age':20}
    17 print(dic.pop('city',None))                #加上返回值None,且键不存在,说明key不存在, 当然也可以把None换成 '不存在'
    18 print(dic)  
    19 # None
    20 # {'name': 'Tom', 'son': '李刚', 'age': 20}
    pop

    popitem(self)

    随机删  有返回值(被删除的键值对)

    dic = {'name':'Tom','son':'李刚','age':20}
    print(dic.popitem())
    print(dic)
    # ('age', 20)
    # {'name': 'Tom', 'son': '李刚'}

    clear(self)

    清空

    1 dic = {'name':'Tom','son':'李刚','age':20}
    2 print(dic.clear())
    3 print(dic)
    4 # None
    5 # {}

    del

    1 dic = {'name':'Tom','son':'李刚','age':20}
    2 del dic['name']
    3 print(dic)
    4 # {'son': '李刚', 'age': 20}

    del dic   #删除整个字典

    三、改

    就是增功能中的覆盖

    1 dic = {'name':'Tom','son':'李刚','age':20}
    2 dic['name'] = '王五'
    3 print(dic)
    4 # {'name': '王五', 'son': '李刚', 'age': 20}

    更新 update(self, E=None, **F)

    覆盖并添加

    1 dic1 = {'name':'Tom','age':20}
    2 dic2 = {'name':'王五','pc':8888}
    3 dic1.update(dic2)
    4 print(dic1)                 #dic1变了   dic2没有变
    5 print(dic2)
    6 # {'name': '王五', 'age': 20, 'pc': 8888}
    7 # {'name': '王五', 'pc': 8888}

    四、查

     get(self, k: _KT)

     1 dic = {'name':'Tom','age':20}
     2 print(dic.get('name'))
     3 # Tom
     4 
     5 dic = {'name':'Tom','age':20}
     6 print(dic.get('heheh'))
     7 # None
     8 
     9 dic = {'name':'Tom','age':20}
    10 print(dic.get('heheh','键不存在 -1'))
    11 # 键不存在 -1

    for 循环

    得到的是列表,然后列表就可以用for循环打印

     1 #1.  keys()
     2 dic = {'name':'Tom','age':20,'job':'teacher'}
     3 for key in dic:    #  for i in dic           for key in dic.keys()
     4     print(key)      # print(i)                 print(key)                 一样的效果
     5 # name
     6 # age
     7 # job
     8 #2.  values()
     9 dic = {'name':'Tom','age':20,'job':'teacher'}
    10 print(dic.values(),type(dic.values()))       #直接print
    11 # dict_values(['Tom', 20, 'teacher']) <class 'dict_values'>
    12 for value in dic.values():
    13     print(value)
    14 # Tom
    15 # 20
    16 # teacher
    17 #3.   items()
    18 
    19 dic = {'name':'Tom','age':20,'job':'teacher'}
    20 print(dic.items(),type(dic.items()))
    21 # dict_items([('name', 'Tom'), ('age', 20), ('job', 'teacher')]) <class 'dict_items'>
    22 for i in dic.items():
    23     print(i)
    24 # ('name', 'Tom')
    25 # ('age', 20)
    26 # ('job', 'teacher')
    27 #--------------------
    28 a,b = [1,2]
    29 print(a,b)                         #分别赋值
    30 # 1 2
    31 
    32 dic = {'name':'Tom','age':20,'job':'teacher'}
    33 for key, value in dic.items():    #key, value  分别接收数据
    34     print(key,value)
    35 # name Tom
    36 # age 20
    37 # job teacher
    38 print(type(key),type(value))       #得到的是字符串
    39 # <class 'str'> <class 'str'>
    for 循环
     
  • 相关阅读:
    第十三周助教总结
    C语言I博客作业09
    第十二周助教总结
    C语言I博客作业08
    第十一周助教总结
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I作业07
    C语言I作业06
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/7739842.html
Copyright © 2011-2022 走看看