zoukankan      html  css  js  c++  java
  • python基础之字典

    初识字典

    • 字典 ---- python中的数据类型之一

    • 唯一 一种{} ,键值对的数据

    • dict 字典

      • 字典

        1、存储大量数据 比列表存储的数据要大

        2、将数据和数据之间进行关联

      • 定义

        dic = {"键":"值"}

        dic = {"岳新力":["开车","唱","跳"],"孙一帆":9,25:"海绵",True:"秀",(1,2,3):"大圣",}

        print(dic[25]) 输出结果 海绵

        print(dic[True]) 结果“秀”

        {"键":"值"} # 通过键可以准确的找到值

      • 哈希:

        #可变数据类型就不可哈希 可变数据类型有list, dict, set 可变就像盖房子,不需要开辟新的空间,直接在所在区域内增删改查,不可变数据类型可哈希不可变数据类型:int tuple str bool 这些若需要增删改查,需开辟新空间

    • 字典的键:不可变数据类型(可哈希),唯一(字典中键只能存在一个)

    • 字典的值:任意

    字典的增(添加)(2)

    1. 第一种方式 (键=值的形式)
    添加  (键=值的形式)
    dic = {"key": 1 }     #dic ["键"] = ”值“
    dic["alex"] =22      **#通过 键值对 的添加**  
    print(dic)     输出结果  {"key":1,"alex":22}
    
    1. 第二种方式 setdefault
    setdefault (存在不添加,不存在添加)
    dic.setdefault("meet",18)   # 参数1:键     参数2 :值  **dic.setdefault(键,值)**
    dic.setdefault("key",18)    #字典中键不存在时添加,若存在时不进行添加
    
    setdefault: 1,查找, 2添加
    1.先通过键去字典中查找,返回的值是None,才会执行第二步
    2.将键和值添加到字典中

    字典的删(4)

    1. 第一种方式 clear ( ) 清空
    • dic  = {"key":1,"das":"asds"}  # 键值对 以逗号分隔
      dic.clear()   #清空
      print (dic) 输出结果 dic ={}
      
      1. 第二种方式 pop("键")
       #dic.pop(“键”) 根据键的名删除该键的键值对
      dic = {'剑圣':'易','哈啥给':'剑豪','大宝剑':'盖伦'}
      s = dic.pop('哈啥给')   # pop删除有返回值,返回的是被删的值
      print(s)   #剑豪
      print(dic)    # 打印删除后的字典  {'剑圣': '易', '大宝剑': '盖伦'}
      
      1. 第三种方式 popitem()

      dis.popitem() 随机删除 Python3默认删除最后一位

      4.第四种方式 del

      dic={1:2}
      del dic   #删除整个字典
      print(dic)  #报错,错误是dic未定义,说明del全部删除,直接从内存将这个字典删除
      
      del dic["键"]    指定删除
      dic={1:2,"xx":"xx"}
      del dic["xx"]
      print(dic)   {1:2} 这种形式跟pop差不多
      

    字典所有的操作都是针对键

    字典的修改:(2)

    • dic["键"] = "值" # 暴力增加 当键在字典中存在时就修改,不存在时就是增加

    • # dic = {"key":1,"dsb":"alex"}
      # dic["dsb"] = "Alex"  # 修改  存在 把值替换  
      # dic["ss"] = "Alex"   # 增加  不存在  就是增加
      # print(dic)
      
      
    • dic.update(字典) # update中的字典级别高于前面的字典

      dic.update({"键":值 ,"键":值}) # 两个字典合并

      dic = {"key":1,"dsb":"alex"}
      dic.update({"key":2,"meet":28})   # 两个字典合并
      print(dic)  
      输出结果:{'meet': 28, 'dsb': 'alex', 'key': 2}
      说明将2个字典合并,不仅可以修改原来dic内容,也可以添加新内容
      

    字典的查:

    • dic = {"key":1,"dsb":"zzz"}

      print(dic["dsb"]) 结果是 zzz# 通过键查找值,键存在时返回键对应的值

      !!!!print(dic["sads"]) 结果 报错 #通过键查找值,键不存在时报错

    • dic.get("键") # 通过键查找值,键存在时返回键对应的值 (比较温柔的)
      print(dic.get("alex")) #通过键查找值,键不存在时返回None
      dic.get("alex","没有找到啊")) # 通过键查找值,制定查找不到时返回的内容

      print(dic.keys()) # 获取字典中所有的键

      print(dic.values()) #获取字典中所有的值

      lst = dic.keys() #高仿列表

      for i in lst: # 高仿列表可以迭代#

      例子 :

      dic = {"key":1,"dsb":"alex"}
      dd = dic.keys()           # 高仿列表
      print(dd)      #dict_keys(['key', 'dsb'])
      for i in lst:              # 高仿列表可以迭代
          print(i)
             #dsb
            #key                循环输出的是 “键”
      
      • # 字典是无序的,python3.6版本以上显示时按照定义顺序去显示
        items获取字典的key和value:
      dic = {"key":1,"key1":2}
      dd = list(dic.items())   
      print(dd)   输出结果: [('key1', 2), ('key', 1)]   形成高仿列表
      print(dd[0][1])  输出结果为2  高仿列表能用列表的索引,[0],[1]  显示的是2
      
      dd = list(dic)
      print(dd)  输出结果:['key1', 'key'] 让字典定义列表,真正的列表只输出“键”
      

      dic = {"key":1,"key1":2,"key2":3,"key3":4}
      for i in dic.items():  高仿列表dic.items()
      	print(i[0],i[1])   输出结果
      key 1
      key2 3
      key1 2
      key3 4
      

      解构

      解构例子

      解构其实就是按照索引分散赋值
      # a,b = (10,20)
      # print(a) 10
      # print(b) 20
      
      # a,b = "你好"
      # print(a) 你
      # print(b) 好
      
      # a,b,c = 10,20,30
      # print(a)  10
      # print(b)  20
      

      聚合

      a,b,c,d,*e = [1,2,3,4,5,6,7] # * 聚合
      #print(a,b,e)
      输出结果:1,2,[3,4,5,6,7]
      
      dic = {"key1":1,"key2":2,"key3":4}
      for i in dic.items():   
        k,v = i    
        print(k,v)   [("key",1),("key2",2)]
      
      # keys   获取的所有的键
      # values 获取的所有的值
      # items  获取的所有的键和值,以元组的形式
      
  • 相关阅读:
    epplus
    http://www.cmake.org/
    patheditor2
    emgu cv
    OpenCV
    Tesseract
    Blendar基金会
    安装服务windows,installutil
    R 软件
    历史为什么选择C语言?事实证明:暮年的C语言,依旧宝刀未老!
  • 原文地址:https://www.cnblogs.com/zzsy/p/12215517.html
Copyright © 2011-2022 走看看