zoukankan      html  css  js  c++  java
  • Python基础篇 -- 字典

    字典

    dict. 以 {} 表示, 每一项用逗号隔开, 内部元素用 key: value的形式来保存数据

    例子: dict.{"JJ":"林俊杰","Jay":"周杰伦"}

    查询效率非常高,通过key来查找元素 内部使用key来计算一个内存地址(暂时) , hash 算法 . 要求 key 必须是不可变的数据类型(key 必须是课hash的数据类型)

    字典没有切片

    字典的增删改查

    1. 新增

      # 第一种方法  直接增加
      dic = {}
      dic["巴萨"] = "梅西"
      dic["尤文"] = "C罗"
      print(dic)
      
      # 第二种方法
      dic = {}
      dic.setdefault("切尔西", "阿扎尔")   #setfault 设置默认值
      dic.setdefault("切尔西", "德罗巴")  
      print(dic)
      #  打印结果是  {"切尔西":"阿扎尔"} 如果存在了key,不会替换掉原来的  如果 value 没有值  打印结果是 None
      
    2. 删除

      dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
      dic.pop("皇马")  # 指定key删除  必须有一个参数
      dic.popitem()    # 随机删除
      dic.clear()      # 清空字典
      del dic["key"]   # 删除
      
    3. 修改和查询

      # 修改
      dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
      
      dic["key"] = "新value"   # 替换掉key 所对应的旧 value
      
      dic2 = {"巴萨":"伊涅斯塔", "皇马":"拉莫斯", "曼城":"萨内"}
      dic.update(dic2)   # update :更新
      print(dic) 
      # 打印结果为  {'巴萨': '伊涅斯塔', '皇马': '拉莫斯', '曼城': '萨内', '尤文': 'C罗', '巴黎': '内马尔'}
      
      
      # 查询
      dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
      print(dic["曼城"])  # 最直观, 直接用key  当key不存在时会报错
      
      print(dic.get("皇马","value 不在这里")  # 如果没有查询到key 会打印出 "value 不在这里" 这句话. 如果没有第二个参数  返回 None .
      
      setdefault()  # 1. 新增( 先看有没有可以, 如果有就过,  没有执行新增 ) 2. 根据key 把值返回
      

    字典的相关操作

    • dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
      # 对字典的遍历
      print(dic.keys())  # 得到一个像列表却不是列表的东西 dict_keys(['巴萨', '皇马', '曼城', '尤文', '巴黎'])
      for key in dic.keys():  # 找到字典中的 key
          print(key)          # 打印key
          print(dic[key])     # 打印value
      
      for key in dic:         #  字典本身是一个可迭代对象,可以直接进行for循环. 找到字典中的 key
          print(key)
          print(dic[key])     
      
      for value in dic.values():  # 找到字典中的 value
          print(value)            # 打印value
      
      print(dic.items())  # 拿到的是key 和 value   item  意思是 项
      # 打印结果 : dict_items([('巴萨', '梅西'), ('皇马', '莫德里奇'), ('曼城', '萨内'), ('尤文', 'C罗'), ('巴黎', '内马尔')])
      for item in dic.items():
          print(item)    #  打印结果是元组
          ('巴萨', '梅西')
          ('皇马', '莫德里奇')
          ('曼城', '萨内')
          ('尤文', 'C罗')
          ('巴黎', '内马尔')
          print(item[0],item[1]) 
          巴萨 梅西
          皇马 莫德里奇
          曼城 萨内
          尤文 C罗
          巴黎 内马尔
      
      # 注: 
      a, b = (10, 20) # 解构 解包   前面变量的个数和后面解包的个一致
      print(a)  # 结果 10
      print(b)  # 结果 20
      
      # 根据解构  可将  for item in dic.items():  简化成下面的形式
      
      for k, v in dic.items():  # 当需要遍历字典. 在操作中设计到key 和 value 的时候.
          print(k)
          print(v)
      
      
  • 相关阅读:
    python 基础——generate生成器
    python 基础——*args和**kwargs
    猴子补丁
    python 元类——metaclass
    javascript 数据类型
    C/C++语言实现单链表(带头结点)
    C++仿函数和回调函数的异同
    C++利用动态数组实现顺序表(不限数据类型)
    const的用法
    数据结构之线性表
  • 原文地址:https://www.cnblogs.com/Agoni-7/p/10990699.html
Copyright © 2011-2022 走看看