Python字典

前言

随着上一篇博客的结束,今天便到了常见数据类型字符串、列表、字典中最常见以及应用最广的字典了,主要有字典的定义、操作、嵌套三个板块,因为其他语言对字符串的常见度,就直接从列表开始了python的笔记,争取日更,共勉!!!

字典的定义

  • 字典 — dict

  • 字典是无序的,可变的数据类型

  • 字典:用于存储数据,存储大量数据 字典要比列表快 将数据和数据之间进行关联

  • 定义一个字典

    • dic = {"ij": 10, "dw": 100, "sd": 60}
      #字典中逗号分隔叫做一个元素  "键":值  --字典(键值对)
      
    • 字典的键、值

    • 字典的键:
      #  必须是可哈希的 --- 不可变的数据类型  避免哈希冲突:使用了开放寻址法
      #  不可哈希 --- 可变的数据类型
      #  要求唯一,如果有重复的,后面的将前面的覆盖
      字典的值:
      # 可以任意
      

字典的操作

字典的增删改查

  • 可变性

  • dic = {"ly":[1,2,3]}
    
  • 增:

    • 暴力添加

    • dic["xl"] = 90 #暴力添加
      print(dic)  # {'ly': [1, 2, 3], 'xl': 90}
      
    • setdefault()

    • dic.setdefault("ok", 90)
      #ok这个键去字典进行查询,如果不存在进行添加,如果存在不添加
      print(dic.setdefault("ok"))         
      #键存在,输出键对应的值  不存在,输出None,可添加
      #暴力添加:相同键会直接覆盖值print(dic)  
      #{'ly': [1, 2, 3], 'xl': 90, 'ok': '90'}
      
  • 删除

    • del dic["键"] #通过字典的键删除键值对
      dic.pop("键")  #通过字典的键进行删除键值对,返回值为被删除的值 print(pop("键"))
      dic.clear() #清空
      #与列表不同,必须有参数--键,因为其无序,默认位置不成立
      
    • dic["键"] = "值"  字典中没有某个键值对的时候就是添加,当键在字典中存在的时候就是修改
      dic["ly"] = "da"
      
    • update()

    • dic.update({"1": 3, "3": 3})
      print(dic)
      dic1 = {"d": 3, "s": 5}
      dic2 = {"e": 2, "d": 8}
      dic1.update(dic2) #updata括号中的字典级别高于updata前面的字典,如遇键相同,后面覆盖前面
      print(dic1)  #{'d': 8, 's': 5, 'e': 2}
      
    • for循环(查键)

    • di = {"f": 5, "dsa": 4, "csa": 989}
      for i in di:
          print(i)
      #f
      #dsa      for循环获取的是字典中每个键值对的键
      #csa
      
    • dic.get(“键”)

    • print(di.get("f")) #5  通过键获取值,如果不存在字典中返回None
      
    • dic[“键”]

    • print(di["f"])  #5 通过键获取值,如果不存在字典中报错
      

字典的其他操作

  • 借用字典  dic = {"1": 3, "5": 4, "3": 0}
    
  • 获取键值对

    • 法一:

      for i in dic:
          print(i, dic.get(i))
      
    • 法二:

      print(dic.items())     #dict_items([('1', 3), ('5', 4), ('3', 0)])
      for i in dic.items():
          print(i)   #构成字典的元组元素
      '''
      	('1', 3)
      	('5', 4)
      	('3', 0)
      '''
      for i in dic.items():
          print(i[0], i[1])  #构成元组的元素
      '''    
          1 3
          5 4
          3 0
      '''
      
    • 法三:

      • 解构的讲解(数字、字符串、元组、列表、字典都可以结构)

      • #解构
        数字,字符串,元组,列表,字典都可以解构,一一对应
        a, b = 10, 20
        print(a) #20
        print(b) #10
        a, b = b, a
        print(a) #20
        print(b) #10
        
      • 在这里插入图片描述

    • 解构的应用(法三)

      for k, v in dic.items():
          print(k, v)
      
  • 查找键 dic.keys()

    • print(dic.keys()) #dict_keys(['1', '5', '3']) 高仿列表
      for i in dic.keys():    
          print(i) #正常运行
      print(dic.keys()[0])   #报错,高仿列表仿到了迭代
      
  • 查找值 dic.values()

    • print(dic.values())  #转列表list()实现其他功能
      

字典的嵌套

dic = {1001: ["周杰伦", "林俊杰"],
       1002: {"汪峰": {"friend1": ["大烧饼"], "friend2": ["苹果", "蔬菜"], "friend3": "rousi"}},
       1003: {"陈冠希": ["xx", "yy"]}
      }
#寻找大烧饼
print(dic[1002]["汪峰"]["friend1"][0])    #大烧饼
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acco_30_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值