zoukankan      html  css  js  c++  java
  • [ python ] 字典的使用

    数据类型划分:
        可变数据类型:list、dict、set    不可哈希
        不可变数据类型:tuple、bool、int、str    可哈希

    字典

    python内置了字典类型,使用键-值(key - value) 存储,具有极快的查找速度;

    key:必须是 不可变数据类型
    value:任意数据类型

    dict 优点:
        二分查找效率快
        存储大量的关系型数据
        特点:字典是无序的

    dict的增删改查

    1. 增加

     (A) dic1['key'] = value     没有键值对,则添加;如果键,则值覆盖。

    dic1 = {"name": "hkey", "age": 18, "sex": "male"}
    dic1["heigh"] = 185
    dic1['name'] = 'jay'
    print(dic1)
    # 执行结果:
    # {'age': 18, 'sex': 'male', 'name': 'jay', 'heigh': 185}
    

    (B) set_default()    有键值对,不做任何改变,没有才添加。

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    
    dic.setdefault('age', 20)       # 存在不修改,不报错
    dic.setdefault('heigh', 180)    # 不存在修改。
    print(dic)
    
    # 执行结果:
    # {'sex': 'male', 'heigh': 180, 'age': 18, 'name': 'jay'}
    

    2. 删除

    (A) pop(key, None)    删除键值对,并返回值。如果字典中没有删除的key,则返回 None

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    t1 = dic.pop('name')    # 当 key 存在时,删除字典中的key-value并返回value值给 t1
    print(t1)
    print(dic)
    
    # 执行结果:
    # jay
    # {'sex': 'male', 'age': 18}
    
    
    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    t1 = dic.pop('name1111', None)    # 当 key 不存在时,则返回定义的第二个参数给 t1
    print(t1)
    # 执行结果:
    # None
    

    (B) popitem() 随机删除并返回删除元组,元组里面是删除的键值对

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    
    t1 = dic.popitem()  # 随机删除key-value 并作为元组返回给 t1
    print(t1, type(t1))
    print(dic)
    
    # 执行结果:
    # ('name', 'jay') <class 'tuple'>
    # {'sex': 'male', 'age': 18}
    

    (C) del 删除键值对或者整个字典

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    del dic['name'] # 删除字典中的键值对
    del dic # 直接删除整个字典
    

     3. 修改

    (A) update     合并两个字典

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    dic2 = {'name1':'hkey', 'age1': 20}
    
    dic.update(dic2)    # 将dic2作为参数合并到dic中,dic变,dic2不变
    
    print('dic:', dic)
    print('dic2:', dic2)
    
    # 执行结果:
    # dic: {'age': 18, 'name': 'jay', 'sex': 'male', 'name1': 'hkey', 'age1': 20}
    # dic2: {'age1': 20, 'name1': 'hkey'}
    

    4. 查询

    (A) dic.keys    字典key的组合,可以当成list类型来处理
    (B) dic.values    字典value的组合,可以当成list类型来处理
    (C) dic.items    字典(key, value)的组合,可以当做元组来处理

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    
    print(dic.keys())
    print(dic.values())
    print(dic.items())
    
    # 执行结果:
    # dict_keys(['age', 'sex', 'name'])
    # dict_values([18, 'male', 'jay'])
    # dict_items([('age', 18), ('sex', 'male'), ('name', 'jay')])
    
    keys()、values()、items() 一般用for来遍历
    
    for k in dic:   # 循环 key 值
        print(k)
    
    for v in dic.values():  # 循环 value 值
        print(v)
    
    for k, v in dic.items():    # 循环key, value 值
        print(k, v)
    

     (D) dic.get()    存在则返回 value值,不存在就返回预设值

    dic = {'name':'jay', 'age':18, 'sex': 'male'}
    print(dic.get('name'))
    print(dic.get('name111', None))
    
    # 执行结果:
    # jay
    # None
    

    练习题:

    s1 = 'asdf123sdfer45sdf3'
    统计 s1 出现数字的次数,连续的数字算一个数字;

    s1 = 'asdf123sdfer45sdf3'
    
    for i in s1:    # 循环整个 s1 字符串
        if i.isalpha(): # 当单个字符串是字母的时候,就将字母替换成空格
            s1 = s1.replace(i, ' ')
    
    li = s1.split() # 通过空格将字符串 s1 分隔成列表
    print(len(li))  # 直接统计列表元素的个数
    
    # 执行结果:
    # 3
    
  • 相关阅读:
    Newtonsoft.Json序列化 对时间格式化处理
    CSS常用提示浮出层的写法
    避免常见的6种HTML5错误用法
    varchar(Max) 对应SqlParameter 数据类型长度改为1
    IIS指定域名不能调试解决办法
    如何弹出固定大小及内容的网页窗口
    CSS图片圆角框的灵活处理
    精通CSS:高级Web标准解决方案(中文电子书下载)
    AjaxControlToolKit(整理)三.......(35个控件)简单介绍
    CSS通用开发库
  • 原文地址:https://www.cnblogs.com/hukey/p/9621631.html
Copyright © 2011-2022 走看看