Python 字典(dict)

  • Python 字典

    字典是无序,可变和索引的集合。在Python中,字典用大括号括起来,并且具有键和值。
    创建并打印字典:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    print(thisdict)
    
    尝试一下
  • 访问项目

    您可以通过在方括号内引用其键名来访问字典的各项:
    获取“model”键的值
    x = thisdict["model"]
    
    尝试一下
    还有一种称为的方法 get(),将为您提供相同的结果:
    获取“model”键的值:
    x = thisdict.get("model")
    
    尝试一下
  • 变更值

    您可以通过引用特定项的键名来更改其值:
    将“year”更改为2019:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    thisdict["year"] = 2019
    
    尝试一下
  • 遍历字典

    您可以使用 for 循环来循环浏览字典 。 当遍历字典时,返回值是字典的键,但是也有一些方法可以返回值。
    一个一个地打印字典中的所有键名:
    for x in thisdict:
      print(x)
    
    尝试一下
    逐一打印字典中的所有值:
    for x in thisdict:
      print(thisdict[x])
    
    尝试一下
    您还可以使用 values() 函数返回字典的值:
    for x in thisdict.values():
      print(x)
    
    尝试一下
    使用 items() 函数循环遍历键和值:
    for x, y in thisdict.items():
      print(x, y)
    
    尝试一下
  • 检查key是否存在

    要确定字典中是否存在指定的键,请使用 in 关键字:
    检查字典中是否存在“model”:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    if "model" in thisdict:
      print("Yes, 'model' is one of the keys in the thisdict dictionary")
    
    尝试一下
  • 字典长度

    要确定字典中有多少项(键值对),请使用 len() 方法。
    打印字典中的项目数:
    print(len(thisdict))
    
    尝试一下
  • 新增项目

    通过使用新的索引键并为其分配值,可以向字典中添加项目:
    打印字典中的项目数:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    thisdict["color"] = "red"
    print(thisdict)
    
    尝试一下
  • 移除项目

    有几种方法可以从字典中删除项目:
    pop() 方法删除具有指定键名的项目:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    thisdict.pop("model")
    print(thisdict)
    
    尝试一下
    popitem() 方法删除最后插入的项(在3.7之前的版本中,将删除随机项):
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    thisdict.popitem()
    print(thisdict)
    
    尝试一下
    del 关键字删除与指定键名称的项目:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    del thisdict["model"]
    print(thisdict)
    
    尝试一下
    del 关键字也可以完全删除字典:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    del thisdict
    print(thisdict) #这将报一个错误 因为 "thisdict" 不再存在.
    
    尝试一下
    clear() 关键字清空词典:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    thisdict.clear()
    print(thisdict)
    
    尝试一下
  • 复制字典

    您不能复制字典只需通过打字dict2 = dict1,这是因为:dict2将只能是一个 参考来dict1,和所做的更改 dict1会自动也在进行 dict2。 有很多方法可以制作副本,一种方法是使用内置的Dictionary方法 copy()
    使用以下 copy() 方法复制字典:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    mydict = thisdict.copy()
    print(mydict)
    
    尝试一下
    制作副本的另一种方法是使用内置方法 dict()
    使用以下 dict() 方法复制字典:
    thisdict = {
      "brand": "Ford",
      "model": "Mustang",
      "year": 1964
    }
    mydict = dict(thisdict)
    print(mydict)
    
    尝试一下
  • 嵌套词典

    词典也可以包含许多词典,这被称为嵌套词典。
    创建一个包含三个词典的字典:
      "child1" : {
        "name" : "Emil",
        "year" : 2004
      },
      "child2" : {
        "name" : "Tobias",
        "year" : 2007
      },
      "child3" : {
        "name" : "Linus",
        "year" : 2011
      }
    }
    
    尝试一下
    或者,如果您想嵌套三个已经作为字典存在的字典:
    创建三个字典,然后创建一个包含其他三个字典的字典:
    child1 = {
      "name" : "Emil",
      "year" : 2004
    }
    child2 = {
      "name" : "Tobias",
      "year" : 2007
    }
    child3 = {
      "name" : "Linus",
      "year" : 2011
    }
    
    myfamily = {
      "child1" : child1,
      "child2" : child2,
      "child3" : child3
    }
    
    尝试一下
  • dict() 构造函数

    也可以使用 dict() 构造函数创建一个新字典:
    使用 set() 构造函数进行设置:
    thisdict = dict(brand="Ford", model="Mustang", year=1964)
    #注意key不是字符串文字
    #注意赋值使用等号而不是冒号
    print(thisdict)
    
    尝试一下
  • 字典方法

    Python具有一组可用于字典的内置方法。
    方法 描述
    clear() 从字典中删除所有元素
    copy() 返回字典的副本
    fromkeys() 返回具有指定键和值的字典
    get() 返回指定键的值
    items() 返回一个列表,其中包含每个键值对的元组
    keys() 返回包含字典键的列表
    pop() 用指定的键删除元素
    popitem() 删除最后插入的键值对
    setdefault() 返回指定键的值。 如果密钥不存在:插入具有指定值的密钥
    update() 使用指定的键值对更新字典
    values() 返回字典中所有值的列表