python基础之字典

Posted zz洲神在此

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  获取的所有的键和值,以元组的形式

以上是关于python基础之字典的主要内容,如果未能解决你的问题,请参考以下文章

python基础一数据类型之字典

python基础之字典

python基础之字典篇

python基础之字典

python基础数据类型之字典+集合

python基础入门之六 —— 字典