zoukankan      html  css  js  c++  java
  • python(3)---dictionary字典

    字典和字典操作

    1、定义字典

    1 dic={
    2     'name':'xiaojun',
    3     'sex':'',
    4     'height':'185',
    5     'age':18,
    6     'email':'abc@qq.com',
    7     'addr':'火星',
    8     'id':1
    9 }
    • 使用大括号{}定义,每个值用“,”隔开,key:value形式
    • 字典是无序的,因为它没有下标,用key来当索引,所以是无序的,取值速度快
    • 字典的key必须是唯一的,因为它是通过key来进行索引的,如果重复最后的一个键值对会替换前面的,所以key不能重复,天生就去重

    2、字典的增删改查

      2.1 增

     1  #add  两种方式
     2  stus={}
     3  stus['name']='小军' #增加
     4  stus['name']='海龙' #name修改为“海龙”
     5  stus.setdefault('name','杨帆') #如果key已经存在,就不动它;没有的话,添加
     6  stus.setdefault('sex','nan')
     7  stus.setdefault('addr','beijing')
     8  stus.setdefault('email','13e@aa.com')
     9  stus.setdefault('phone','2346465')
    10  print(stus)

    运行结果:

    {'addr': 'beijing', 'sex': 'nan', 'phone': '2346465', 'name': '海龙', 'email': '13e@aa.com'}

      2.2 改

    1 #修改  即再次赋值
    2 stus={'addr': 'beijing', 'sex': 'nan', 'phone': '2346465', 'name': '海龙', 'email': '13e@aa.com'}
    3 stus['sex']='nv'

    2.3 删除

      两种方式:del 和 pop

    1 #删  删除不存在的key会报错
    2  del stus['phone']
    3  stus.pop('age')
    4  stus.popitem() #随机删除 

     2.4 查询

          两种方式:

    • stus['sex']   
    • stus.get('sex')
    1 # #查询
    2 stus={'addr': 'beijing', 'sex': 'nan', 'phone': '2346465', 'name': '海龙', 'email': '13e@aa.com'}
    3 print(stus['sex'])  #如果不存在会报错
    4 print(stus.get('sex')) #如果不存在的话,返回none,不会报错
    5 print(stus.get('sex','')) #如果sex不存在,返回默认值'男'
    6 email in stus  #email是否存在stus中,返回true或false

    3、字典内置方法

    1 stus={'addr': 'beijing', 'sex': 'nan', 'phone': '2346465', 'name': '海龙', 'email': '13e@aa.com'}
    2 print(stus.keys())   #取出所有key
    3 print(stus.values()) #取出所有value
    4 stus.update({'money':10000})  #更新字典值,如果key存在的话,就更新,不存在的话就添加
    5 print(stus.items()) #将字典转成list

    4、遍历字典

    1 stus={'addr': 'beijing', 'sex': 'nan', 'phone': '2346465', 'name': '海龙', 'email': '13e@aa.com'}
    2 for k in stus:
    3     print(k,'===>',stus.get(k))
    4 
    5 for k,v in stus.items():
    6     print(k,'==>',v)

    运行结果:

    email ===> 13e@aa.com
    sex ===> nan
    addr ===> beijing
    phone ===> 2346465
    name ===> 海龙
    email ==> 13e@aa.com
    sex ==> nan
    addr ==> beijing
    phone ==> 2346465
    name ==> 海龙
    View Code

    5、字典嵌套

     1 all_stus={
     2     'xiaojun':
     3     {
     4     'name':'xiaojun',
     5     'sex':'',
     6     'height':'185',
     7     'age':18,
     8     'email':'abc@qq.com',
     9     'addr':'火星',
    10     'id':1,
    11     'cars':["牧马人",'911','野马','劳斯莱斯']
    12      },
    13     'hailong':
    14     {
    15     'name':'hailong',
    16     'sex':'',
    17     'height':'185',
    18     'age':12,
    19     'email':'abc@qq.com',
    20     'addr':'火星',
    21     'id':2
    22     },
    23     'yangfan':
    24         {
    25             'name': 'hailong',
    26             'sex': '',
    27             'height': '185',
    28             'age': 12,
    29             'email': 'abc@qq.com',
    30             'addr': '火星',
    31             'id': 3,
    32             'bags':{
    33                 'qianbao':['lv','ysl'],
    34                 'beibao':['coach','abc']
    35             }
    36         }
    37 }
    38 all_stus['xiaojun']['cars'].append('五菱宏光')   #给xiaojun添加一个car
    39 print(len(all_stus['xiaojun']['cars']))        #统计xiaojun有多少个car  len()函数
    40 all_stus['yangfan']['sex']='nv'             #改yangfan的sex
    41 print(all_stus['yangfan']['sex'])
    42 all_stus['yangfan']['bags']['qianbao'].pop(0)    #删除lv
    43 all_stus['yangfan']['bags']['beibao'].remove('abc') #删除abc
  • 相关阅读:
    魅族Flyme OS使用小技巧
    Android应用里面调用Google Earth应用
    关于连接网络时抛出“android.os.NetworkOnMainThreadException”异常问题
    《深入理解计算机系统》实验一 —Data Lab
    《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
    使用 VB.NET 封装 Javascript 常用功能(这是在asp.net中的)
    Net线程问题解答
    线程同步
    利用辅助线程更新用户界面UI
    FFMPEG参数说明
  • 原文地址:https://www.cnblogs.com/HathawayLee/p/9536879.html
Copyright © 2011-2022 走看看