~~字典的简单方法使用~~

进击のpython

***** # 字典(python中唯一的映射类型)
  • 定义 {key1:value1,key2:value2}

    info{
      "name":"zhangsan",
      "age":"22",
      "sex":"man"
    }
    
  • 特性

    • 无序
    • 速度快
    • key不可变 value多元存放
  • 创建

    1. person={"name":"zhangsan","age":"22","sex":"man"}
    2. person=dict(name="zhangsan",age="22",sex=“man”)
    3. {}.fromkeys(keys) 批量生产字典

  • 增加

    d = {1: None, 2: None, 3: None, 4: None, 5: None}
    d["name"] = "zhangsan"
    print(d)
    

这种方法虽然简单,但是当添加的key在原字典里也有的时候,就会覆盖。

不被覆盖的是这种方法:

d = {1: None, 2: None, 3: None, 4: None, 5: None}
d.setdefault("name","zhangsan")
print(d)
d.setdefault("name","lisi")
print(d)

即使第二次命名字典中的key,value也还是开始的value,并没有改变,但是 也不会报错。

  • 删除

    d.pop("3") 删除“3”这个键

    d.popitem() 随便删除一个

    del d["4"] 同“pop”

    d.clear() 清空字典

    d = {1: None, 2: None, 3: None, 4: None, 5: None}
    print(d)
    
    d.pop(3)
    print(d)
    
    del d[4]
    print(d)
    
    d.popitem()
    print(d)
    
    d.clear()
    print(d)
    
    

  • 修改

    d["key"]="new_value" 如果有原始key,则 new_value 会覆盖原先的值

    d.update(d2) 将字典d2中的键值对添加到字典d中

    d = {1: None, 2: None, 3: None, 4: None, 5: None}
    d2 = {3: "苹果", 6: "香蕉"}
    print(d, d2)
    
    d[2] = "yaya"
    print(d)
    
    d.update(d2)
    print(d)
    

d2中如果和d有相同的键,则会覆盖掉原有的值,没有则添加。

  • 查找

    d["key"] 返回字典里 key 所对应的 value ,没有则报错。

    d.get(key,default = None) 返回字典中key 所对应的 value ,不存在返回default的值

    "key" in dic 存在则返回True,没有则返回False

    d.keys() 返回一个包含字典里所有keys的列表

    d.values() 返回一个包含字典里所有values的列表

    d.items() 返回一个包含所有(键,值)元祖的列表

    d = {1: "pingguo", 2: "juzi", 3: "xiangjiao", 4: "li", 5: None}
    print(d)
    
    print(d[3])
    
    # print(d[6])
    
    print(d.get(3))
    
    print(d.get(6))
    
    print(d.get(6,"*"))
    
    print(d.keys())
    
    print(d.values())
    
    print(d.items())
    
    
  • 循环

    正常的 for i in 循环,循环的是字典的 key

    如果想循环value,就使用d[key]的方法

    以下是常见的四种方式:

    d = {1: "pingguo", 2: "juzi", 3: "xiangjiao", 4: "li", 5: None}
    print(d)
    
    print("______________________________________________________________")
    #打印key
    for i in d:
        print(i)
    
    print("______________________________________________________________")
    #打印value
    for i in d:
        print(d[i])
    
    print("______________________________________________________________")
    #直接打印,但是是元组,效率低
    for i in d.items():
        print(i)
    
    print("______________________________________________________________")
    #去除元组,效率低
    for k,v in d.items():
        print(k,v)
    

  • 长度

    len(d)

*应该还有别的*
*但是不咋常用*
原文地址:https://www.cnblogs.com/jevious/p/11116832.html