zoukankan      html  css  js  c++  java
  • python基础 dict

    字典

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

    不可变数据类型(可哈希):元组,bool值,int,str 
    可变数据类型(不可哈希):list,dict,se 
    dict key键必须是不可变数据类型,
    value 值任意数据类型。
    dict 优点:二分查找去查询
    存储大量的关系型数据
    特点:无序的,3.5之前的版本,

      字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的希表示key必须是不可变类型,如:数字、字符串、元组。

      字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典的增

    dic1 = {'age':18,'name':'sole','sex':'male'}
    dic1['high'] = 180  #没有键值对,就添加
    
    print(dic1)
    
    dic1['age'] = 20   #有就覆盖
    
    print(dic1)
    
    dic1.setdefault('weight',100)   #  setdefault 默认是None,有不做任何操作,没有就添加

    字典的删

    dic1 = {'age':18,'name':'sole','sex':'male'}
    
    dic1.pop('18',None)  #可设置返回值
    
    print(dic1)
    
    dic1.popitem()        #随机删除   有返回值,元祖,删除的键值
    
    print(dic1)
    
    dic1.clear()           #清空字典
    
    print(dic1)
    
    del dic1['age']        #可以删除整个字典
    
    print(dic1)

    字典的改

    dic1 = {'age':18,'name':'sole','sex':'male'}
    
    dic1['age'] = 21
    
    print(dic1)
    
    dic1 = {'age':18,'name':'jin','sex':'male'}
    
    dic2 = {'age':18,'name':'jin','weight':150}  #必须需要两个字典
    
    dic2.update(dic1)    # 将dic1所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
    
    print(dic2)

    字典的查

    dic1 = {'age':18,'name':'sole','sex':'male'}
    
    dic1.keys()       #查询时,相当一个列表的操作与
    
    print(dic1)
    
    dic1.values()       #
    
    print(dic1)
    
    dic1.items()         #元组,里面是键值 dict_items类型,可迭代的
    
    print(dic1)
    
    v1 = dic1['name']        #没有值就报错
    
    print(v1)
    
    dic1.get('name1')        #不报错,返回None
    
    print(dic1)

    字典的循环

    for i in dic1:                #默认打印keys   dic1 相当于 dic1.keys,输出的是键
    
    print(i)
    
    for i in dic1:                #输出的是 值
    
    print(i)
    
    for k,v in dic1.items():   #输出的是 键 值
    
    print(k,v)

    字典的嵌套

    dic = {                                           #字典的嵌套
        'name':['sole','memory','fucker'],         #字典里面设置第一个列表
        'j9':{                                        #嵌套一个字典
            'time':'0525',
            'learn_money':30000,
            'address':'CBD',
            },
            'hobbie':'game'
        }
    dic['hobbie'] = 'music '                        #修改字典里面的爱好
    dic['name'].append('xiao')                   #字典里面的变量增加一个元素
    dic['name'][2] = dic['name'][2].upper()     #字典里面第三个元素变成大写
    dic['j9']['female'] = 4                      #在嵌套的字典里面添加一个键值对
  • 相关阅读:
    安装Elasticsearch,Logstash,Kibana(5.0.1-mac版)
    代理服务器
    浅谈微信三级分销系统的漏洞
    Highcharts图表.net版开源,支持webform 和 mvc3,完全开源
    (转)搞个这样的APP要多久?心酸啊。
    (转)nginx+iis实现负载均衡
    (转).NET技术大系概览 (迄今为止最全的.NET技术栈)
    (转)Asp.Net Mvc视图引擎Razor介绍
    (转)多种方法实现Loading(加载)动画效果
    (转)C# 正则表达式
  • 原文地址:https://www.cnblogs.com/soleZ/p/8073371.html
Copyright © 2011-2022 走看看