zoukankan      html  css  js  c++  java
  • Python基本知识(4)——字典

    1、字典(dict)讲解及增删改查操作

      数据类型划分:可变数据类型,不可变数据类型

      不可变数据类型:元组,bool, int, str。又称可哈希
      可变数据类型:list,dict,set。又称不可哈希
      dict(字典)的key(键) 必须是不可变数据类型(可哈希)。它的value(值)是任意数据类型。
      dict 优点:能利用二分查找去查询,速度快。
                       存储大量的关系型数据

    1 dic = {
    2     'name':'xiaoming',
    3     'age':20,
    4     'sex':'male'
    5 }
    View Code

     

    1.2、增

     1 #增:
     2 #1、
     3 #1.1、增加原先没有的
     4 dic['height'] = 180
     5 print(dic)
     6 #result:
     7 #{'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180}
     8 #1.2、覆盖原先的
     9 dic['age'] = 18
    10 print(dic)
    11 #result:
    12 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180}
    13 #2、setdefault对于已有的键值,更改不采取任何操作,对于没有的键值,更改才有效果
    14 '''
    15 dic.setdefault('weight')#后面不加值,则默认为None
    16 print(dic)
    17 '''
    18 #result:
    19 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180, 'weight': None}
    20 dic.setdefault('weight',130)
    21 print(dic)
    22 #result:
    23 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180, 'weight': 130}

    1.3、删

     1 #
     2 #1、
     3 print(dic.pop('weight'))#130,说明字典中pop也有返回值
     4 print(dic)
     5 #result:
     6 #{'name': 'xiaoming', 'age': 18, 'sex': 'male', 'height': 180}
     7 
     8 #若删除一个字典里面没有的键,会报错,如:
     9 '''
    10 dic.pop('hobby')
    11 '''
    12 #这时,若我们不知道有没有这个见,但是我们有想删除它,只需要在后面加一点提示即可,如:
    13 print(dic.pop('hobby',None))#在控制台,会打印出来这个None
    14 
    15 #2、 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。
    16 dic1 = {
    17     'name':'xiaoming',
    18     'age':20,
    19     'sex':'male',
    20     'height':180,
    21     'hobby':'football',
    22     'school':'PeKing University',
    23     'hometown':'anhui'
    24 }
    25 print(dic1.popitem())#有返回值
    26 print(dic1)
    27 dic1.popitem()
    28 print(dic1)
    29 dic1.popitem()
    30 print(dic1)
    31 dic1.popitem()
    32 print(dic1)
    33 #result:
    34 #{'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180, 'hobby': 'football', 'school': 'PeKing University'}
    35 # {'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180, 'hobby': 'football'}
    36 # {'name': 'xiaoming', 'age': 20, 'sex': 'male', 'height': 180}
    37 # {'name': 'xiaoming', 'age': 20, 'sex': 'male'}
    38 
    39 #3、del
    40 dic2 = {
    41     'name':'xiaoming',
    42     'age':20,
    43     'sex':'male'
    44 }
    45 del dic2['age']#若删除没有的键,则报错,故尽量用pop方法
    46 print(dic2)
    47 #result:
    48 #{'name': 'xiaoming', 'sex': 'male'}
    49 
    50 #4、clear:清空
    51 dic3 = {
    52     'name':'xiaoming',
    53     'age':20,
    54     'sex':'male'
    55 }
    56 dic3.clear()
    57 print(dic3)
    58 #result:
    59 #{}

    1.4、改

     1 #
     2 #1、覆盖
     3 dic4 = {
     4     'name':'xiaoming',
     5     'age':20,
     6     'sex':'male'
     7 }
     8 dic4['age'] = '18'
     9 print(dic4)
    10 
    11 #2、update
    12 dic5 = {
    13     'name':'xiaoming',
    14     'age':20,
    15     'sex':'male'
    16 }
    17 dic6 = {
    18     'name':'daming',
    19     'height':180
    20 }
    21 dic5.update(dic6)#已有键值则覆盖,没有的键值则添加
    22 print(dic5)
    23 #result:
    24 #{'name': 'daming', 'age': 20, 'sex': 'male', 'height': 180}

    1.5、查

     1 #
     2 dic7 = {
     3     'name':'xiaoming',
     4     'age':20,
     5     'sex':'male'
     6 }
     7 print(dic7.keys())
     8 print(dic7.values())
     9 print(dic7.items())
    10 print(dic7['name'])#缺点:若没有这个键,则报错
    11 print(dic7.get('name'))#print(dic7.get('name1',None))若没有这个键,则给出提示
    12 #result:
    13 #dict_keys(['name', 'age', 'sex'])
    14 # dict_values(['xiaoming', 20, 'male'])
    15 # dict_items([('name', 'xiaoming'), ('age', 20), ('sex', 'male')])
    16 # xiaoming
    17 # xiaoming
    18 
    19 #先看一下一个对a,b赋值,并打印出来的例子。
    20 a,b=1,2
    21 print(a,b)
    22 a,b=[1,2]#列表
    23 print(a,b)
    24 a,b=(1,2)#元祖
    25 print(a,b)
    26 #result:
    27 #1 2
    28 #1 2
    29 #1 2
    30 
    31 #打印出来的是一个元祖
    32 for i in dic7.items():
    33     print(i)
    34 #result:
    35 #('name', 'xiaoming')
    36 #('age', 20)
    37 #('sex', 'male')
    38 
    39 #如果想要打印每一个键值,而不是元祖,该怎么做呢?参考上面对a,b的赋值
    40 for k,v in dic7.items():
    41     print(k,v)
    42 # result:
    43 # name xiaoming
    44 # age 20
    45 # sex male

     2、字典的嵌套

     1 dic = {
     2     'name':['xiaoming','daming','xiaohong'],
     3     'age':[18,19,20],
     4     'class':{
     5         'teacher':'xiaowang',
     6         'age':50,
     7         'sex':'male'
     8     }
     9 }
    10 #将'daming'改为'DAMING'
    11 dic['name'][1] = dic['name'][1].upper()
    12 print(dic)
    13 
    14 #在class字典中添加一个键值:'subject':Chinese
    15 dic['class'] ['subject'] = 'Chinese'
    16 print(dic)
    字典的嵌套
  • 相关阅读:
    优雅得使用composer来安装各种PHP小工具
    Docker学习总结之Docker与Vagrant之间的特点比较
    深入理解php 匿名函数和 Closure
    laravel 拾遗 中间件
    centos 手动编译 fcitx 各种问题大全
    Install haroopad on centos7
    centos7 編譯 chmsee
    centos 7 禁用笔记本触摸板设置
    理解 Linux 配置文件
    输入法环境变量XMODIFIERS/GTK_IM_MODULE
  • 原文地址:https://www.cnblogs.com/missdx/p/10856615.html
Copyright © 2011-2022 走看看