zoukankan      html  css  js  c++  java
  • Python之字典

    1、字典的特点:

    • 速度快,好取值
    • 无序存储,因此每次输出的顺序都有可能不一样
    • 可以循环
    • 以k-v形式存在,即:
     stus={
       'name':'xiaojun',
       'sex':'男',
       'shengao':'185',
       'age':18,
       'email':'abc@qq.com',
       'addr':'火星',
       'id':1
     }

     2、增删改查实现:

    #查:

    • 查询所有字典内容:
    print(stus)
    • 查询所有的value值:

    使用.values()方法:

    print(stus.values())
    •  查询所有的key:

    使用.keys()方法:

    print(stus.keys())
    • 查询单个值:

    使用key作为变量进行查询,可以查出value值:

    print(stus['name'])

    如果没有key,那么以上这种方式会报错,这时换成另一种查询方式:

    print(stus.get('xingming'))

    使用.get()方法,如果程序中有key,则返回value值;如果没有Key,则返回:None。

    (Python中的key和value都是成对出现的。)

    当没有key的时候,可以设置一个默认的value值:

    print(stus.get('xingming','lrx'))

    那么当使用.get()时就会返回这个默认value,即lrx。

    .get()方法:

    • 查找不报错
    • 可以设置默认值

    #增:

    •  直接赋值,如果没有值,直接加入;
    stus['name']='小军'
    • 使用.setdefault()方法:
    stus.setdefault('addr','北京')

    .setdefault()方法:

    • 如果原来有值,则使用setdefault()后不会覆盖原值。
    • 适用于不清楚原来有哪些key-value,又想赋值或者查询的情况:
    stus['name']='小军'
    stus['name']='海龙'
    stus.setdefault('name','杨帆') 
    print(stus['name'])
    #结果为海龙

     #改:

    如果有值,就覆盖原值:

    stus['zhanghao']='admin'

    #删:

    • 删除具体值:

    使用.pop()方法,以key为变量:

    stus.pop('zhanghao')
    • 删除具体值:

    使用del方式,以key为变量:

    del stus['zhanghao']
    • 随机删除某一个值:

    使用.popitem()方法:

    stus.popitem()

    3、清空字典:

    使用.clear()方法:

    stus.clear()

    4、字典合并更新:

    使用.update()方法,相当于追加,把一个字典里的内容加到另一个字典里:

    abc={'住址':'北京'}
    stus.update(abc)

    5、字典循环:

    使用for循环,

    (字典都是一维的)

    • 只打印key:
    for i in stus:
        if i=='zhanghao':
            print(stus[i])
    #输出value
       print(i,'========>',stus.get(i))
    • 同时打印key和value:

    使用.items()方法:

    for k,v in stus.items():
        print(k,'=========>',v)

     6、多层嵌套字典应用:

    all_stus={
        'xiaojun':
        {
        'name': 'xiaojun',
        'sex': '',
        'shengao': '185',
        'age': 18,
        'email': 'abc@qq.com',
        'addr': '火星',
        'id': 1,
        'cars':['牧马人','911','野马','劳斯莱斯']
        },
        'yangfan':
            {
                'name': 'hailong',
                'sex': '',
                'shengao': '185',
                'age': 18,
                'email': 'abc@qq.com',
                'addr': '火星',
                'id': 3,
                'bags':{
                    'qianbao':['lv','ysl'],
                    'beibao':['coach','abc']
                }
            }
    }
    • 找到value所在位置后,进行列表追加:
    all_stus['xiaojun']['cars'].append('五菱宏光')

    (找value类似于列表,将所有的key作为下标使用。)

    • 打印值的长度:

    使用len()方法:

    print(len(all_stus['xiaojun']['cars']))
    • 改值:
    all_stus['yangfan']['sex']=''
    • 删值:

    使用.pop()方法:

    all_stus['yangfan']['bags']['qianbao'].pop(0)#删除lv

    使用.remove()方法:

    all_stus['yangfan']['bags']['qianbao'].remove('ysl')#删除ysl

    (remove()是列表list的方法,并不是字典里的方法。)

     使用del()方式:

    del all_stus['yangfan']['bags']['qianbao'][0]#del在字典中括号里是key,在列表中括号里是下标

    方法都是接();只有取值时用的是[]

  • 相关阅读:
    h5唤起app
    app唤起的完美解决方案,及阻止浏览器的默认弹窗行为
    cdn
    函数声明和函数表达式的区别
    基础系列(7)—— 结构
    基础系列(4)—— C#装箱和拆箱
    重温软件工程——对软件工程的初步了解
    基础系列(9)—— 抽象方法和接口
    自学系列--git的基础简介
    设计模式之简单工厂模式
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/9562454.html
Copyright © 2011-2022 走看看