zoukankan      html  css  js  c++  java
  • python-字典

    字典

    一、 字典

    1.、 列表可以存储大量的数据类型,但是如果数据量大的话,他的查询速度比较慢。

    2.、 列表只能按照顺序存储,数据与数据之间关联性不强。

    所以针对于上的缺点,需要引入另一种容器型的数据类型,解决上面的问题,这就需要dict字典。

    不可变(可哈希)的数据类型:int,str,bool,tuple。

      可变(不可哈希)的数据类型:list,dict,set。

    字典是Python语言中的映射类型,他是以{}括起来,里面的内容是以键值对的形式储存的:

        Key: 不可变(可哈希)的数据类型.并且键是唯一的,不重复的。

        Value:任意数据(int,str,bool,tuple,list,dict,set),包括后面要学的实例对象等。

     在Python3.5版本(包括此版本)之前,字典是无序的。

     在Python3.6版本之后,字典会按照初建字典时的顺序排列(即第一次插入数据的顺序排序)。

     当然,字典也有缺点:他的缺点就是内存消耗巨大。

    二、 创建:

    # 方式1:
    dic = dict((('one', 1),('two', 2),('three', 3)))
    
    # dic = dict([('one', 1),('two', 2),('three', 3)])
    
    print(dic)  # {'one': 1, 'two': 2, 'three': 3}
    # 方式2:
    dic = dict(one=1,two=2,three=3)
    
    print(dic)  # {'one': 1, 'two': 2, 'three': 3}
    # 方式3:
    dic = dict({'one': 1, 'two': 2, 'three': 3})
    
    print(dic)  # {'one': 1, 'two': 2, 'three': 3}

    # 方式5: 后面会讲到先了解
    dic = dict(zip(['one', 'two', 'three'],[1, 2, 3]))
    
    print(dic)
    # 方式6: 字典推导式 后面会讲到
    dic = { k: v for k,v in [('one', 1),('two', 2),('three', 3)]}
    
    print(dic)
    # 方式7:利用fromkey。
    dic = dict.fromkeys('abcd','太白')
    
    print(dic)  # {'a': '太白', 'b': '太白', 'c': '太白', 'd': '太白'}

    三、 增

         1、 通过键值对直接增加

    dic = {'name': '太白', 'age': 18}
    
    dic['weight'] = 75 # 没有weight这个键,就增加键值对
    
    print(dic) # {'name': '太白', 'age': 18, 'weight': 75}
    
    dic['name'] = 'barry' # 有name这个键,就成了字典的改值
    
    print(dic) # {'name': 'barry', 'age': 18, 'weight': 75}

    2、 setdefault

    dic = {'name': '太白', 'age': 18}
    
    dic.setdefault('height',175) # 没有height此键,则添加
    
    print(dic) # {'name': '太白', 'age': 18, 'height': 175}
    
    dic.setdefault('name','barry') # 有此键则不变
    
    print(dic) # {'name': '太白', 'age': 18, 'height': 175}
    
    #它有返回值
    
    dic = {'name': '太白', 'age': 18}
    
    ret = dic.setdefault('name')
    
    print(ret)  # 太白

    四、 删

    1、 pop 通过key删除字典的键值对,有返回值,可设置返回值。

    dic = {'name': '太白', 'age': 18}
    
    # ret = dic.pop('name')
    
    # print(ret,dic) # 太白 {'age': 18}
    
    ret1 = dic.pop('n',None)
    
    print(ret1,dic) # None {'name': '太白', 'age': 18}

    2、 popitem 3.5版本之前,popitem为随机删除,3.6之后为删除最后一个,有返回值

    dic = {'name': '太白', 'age': 18}
    
    ret = dic.popitem()
    
    print(ret,dic) # ('age', 18) {'name': '太白'}

    3、 clear 清空字典

    dic = {'name': '太白', 'age': 18}
    
    dic.clear()
    
    print(dic) # {}

    4、 del 通过键删除键值对

    dic = {'name': '太白', 'age': 18}
    
    del dic['name']
    
    print(dic) # {'age': 18}

    5、 删除整个字典

    del dic

    五、 改

    1、 通过键值对直接改

    dic = {'name': '太白', 'age': 18}
    
    dic['name'] = 'barry'
    
    print(dic) # {'name': 'barry', 'age': 18}

    2、 update

    dic = {'name': '太白', 'age': 18}
    
    dic.update(sex='', height=175)
    
    print(dic) 
    
    # {'name': '太白', 'age': 18, 'sex': '男', 'height': 175}
    
    
    
    dic = {'name': '太白', 'age': 18}
    
    dic.update([(1, 'a'),(2, 'b'),(3, 'c'),(4, 'd')])
    
    print(dic) 
    
    # {'name': '太白', 'age': 18, 1: 'a', 2: 'b', 3: 'c', 4: 'd'}
    
    
    
    dic1 = {"name":"jin","age":18,"sex":"male"}
    
    dic2 = {"name":"alex","weight":75}
    
    dic1.update(dic2)
    
    print(dic1) 
    
    # {'name': 'alex', 'age': 18, 'sex': 'male', 'weight': 75}
    
    print(dic2) # {'name': 'alex', 'weight': 75}

    六、 查

    1、 通过键查询 直接dic[key](没有此键会报错)

    dic = {'name': '太白', 'age': 18}
    
    print(dic['name']) # 太白

    2、 get

    dic = {'name': '太白', 'age': 18}
    
    v = dic.get('name')
    
    print(v) # '太白'
    
    v = dic.get('name1')
    
    print(v) # None
    
    v = dic.get('name2','没有此键')
    
    print(v) # 没有此键

    3、 keys()

    dic = {'name': '太白', 'age': 18}
    
    print(dic.keys()) 
    
    # dict_keys(['name', 'age'])

    4、 values()

    dic = {'name': '太白', 'age': 18}
    
    print(dic.values()) 
    
    # dict_values(['太白', 18])

    5、 items()

    dic = {'name': '太白', 'age': 18}
    
    print(dic.items()) 
    
    # dict_items([('name', '太白'), ('age', 18)])
  • 相关阅读:
    Kali渗透测试工具-netcat
    信息收集工具-dimtry
    Beef xss神器
    Scapy编写ICMP扫描脚本
    全国职业技能大赛信息安全管理与评估-MySQL弱口令利用
    crawler 听课笔记 碎碎念 2 一些爬虫须知的基本常识和流程
    crawler 听课笔记 碎碎念 3 关于python的细枝末节的回顾复习
    关于互信息(Mutual Information),我有些话要说
    最让人头疼的清洗数据过程----选择合适的方式快速命中所需的数据
    利用小虫虫做一枚合格宅男,果然牡丹花下做鬼也风流
  • 原文地址:https://www.cnblogs.com/gudexiao-1996/p/12817123.html
Copyright © 2011-2022 走看看