zoukankan      html  css  js  c++  java
  • Python_字典的增、删、改、查

    数据类型划分

    不可变数据类型:    元组、bool、int、str                                                   (也称作  可哈希)

     可变数据类型:       list、dict、set(集合,集合可变,内元素不可变)    (也称作  不可哈希)                  

    字典dict

           字典是python中惟一的的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无需存储的,且key必须是可哈希的。

            dict 优点:  字典当中的元素是通过键来存取的,而不是通过偏移存取。二分查找去查询,存储大量的关系型数据。

    dict的增、删、改、查

    增:   

    1、直接键值对增加,没有相同k值时直接添加,k值已经存在,则v值覆盖。

    2、通过 setdefault(self,k,v=None)添加,k值没有时,直接添加,k值已经存在,则不做任何改变,v值默认为 None

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    dic['age'] = 76
    dic.setdefault('qw')
    dic.setdefault('ty',45)
    
    {'qw': None, 'sex': 'male', 'ty': 45, 'name': 'jin', 'age': 76}

    删:
    1、pop(self,k:_KT)    按键去删除,有返回值,如果k值本来存在,返回k值对应的v值,如果k值不存在,默认返回None,可以设置v值为任何形式。

    2、popitem(self)              随机删除一个键值对,有返回值,元组形式出现,删除的键值对

    3、clear                                清空字典

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175}
    print(dic.pop('age',))
    print(dic.pop('ages',{'ssss':1}))
    print(dic.popitem())
    dic.clear()
    
    18
    {'ssss': 1}
    ('name', 'jin')
    {}

    改:

    1、直接覆盖   

    2、update()    dic_2.update(dic_1)      覆盖添加

    dic = {'age': 18, 'name': 'jin', 'sex': 'male', 'high': 175}
    dic1 = {'as': 'qyqy', 'oipi': 45, 'age' : 13}
    dic1.update(dic)
    print(dic1)
    
    
    {'as': 'qyqy', 'name': 'jin', 'high': 175, 'age': 18, 'sex': 'male', 'oipi': 45}

    查:

    1、直接根据k值查询,如果k值没有,会报错

    2、for 循环,整体查

    3、get(k,None)   dic_2 = dic_1.get ( k,v)   如果有k值,返回对应的v值,如果没有对应的k值,默认返回 None ,可以设定v值返回。

    dic = {'age': 18, 'name': 'jin', 'sex': 'male'}
    print(dic.keys(),type(dic.keys()))
    print(dic.values(),type(dic.values()))
    print(dic.items(),type(dic.items()))
    
    
    dict_keys(['sex', 'name', 'age']) <class 'dict_keys'>
    dict_values(['male', 'jin', 18]) <class 'dict_values'>
    dict_items([('sex', 'male'), ('name', 'jin'), ('age', 18)]) <class 'dict_items'>
  • 相关阅读:
    总结oninput、onchange与onpropertychange事件的用法和区别,onchange
    即时反应的input和propertychange方法
    响应式网页
    angularJS问题集结
    网页边框样式与style样式部分总结
    软件工程问题及回答
    第13章到第17章问题
    《构建之法》第10、11、12章
    《构建之法》第8,9,10章
    [css]等高列的简单实现
  • 原文地址:https://www.cnblogs.com/Chong-Yang/p/8074913.html
Copyright © 2011-2022 走看看