python课堂整理6---字典

一、字典  dict

info = {"k1" : "v1", "k2" : "v2"}

以键值对形式组成字典

字典里的value可以是任何值

列表不能作为字典的key

字典可以作为字典的key

元组可以作为字典的key

布尔值可以作为字典的key  但是重复的key只会显示一个,True容易和数字1重复,需注意!

字典是无序的

字典支持索引取值,但不支持切片

info = {
    "k1": 18,
    2 : True,
    "k3": [
        "li",
        [],
        (),
        22,
        33,
        {
            "kk1": "vv1", "kk2": "vv2", "kk3": (11, 22)
        }
    ],
    "k4": (11, 22, 33, 44)
}
v = info["k1"]
print(v)

info = {
    "k1": 18,
    2 : True,
    "k3": [
        "li",
        [],
        (),
        22,
        33,
        {
            "kk1": "vv1", "kk2": "vv2", "kk3": (11, 22)
        }
    ],
    "k4": (11, 22, 33, 44)
}
v = info["k3"][5]["kk3"][0]
print(v)

注意:通过索引key值去找value的话,如果该key不存在,会报错。

支持del删除

del info['k1']

支持for 循环

1.输出所有keys

info = {"k1": "v1", "k2": "v2"}
for item in info.keys():
    print(item)

2.输出所有values值

info = {"k1": "v1", "k2": "v2"}
for item in info.values():
    print(item)

3. 同时输出keys和values:

info = {"k1": "v1", "k2": "v2"}
for item in info.keys():
    print(item, info[item])

或(这个更重要)items 方法

info = {"k1": "v1", "k2": "v2"}
for k, v in info.items():
print(k, v)

  

二、字典的魔法

1. 该方法和前面相同不再赘述:clear  copy (浅拷贝)

2. 根据序列(可以是列表、元组、字符串等),创建字典,并指定统一的值

v = dict.fromkeys(["k1", 123, "999"], "爱你")
print(v)

3. get方法,如果传入的key不存在,默认返回None,也可以指定返回值

dic = {"k1": "v1"}
v = dic.get("k1")
v2 = dic.get("大白", "不存在")
print(v, v2)

4. pop删除,当要删除的key不存在时,返回指定内容

dic = {"k1": "v1",
"k2": "v2"
}
v1 = dic.pop("k1")
v2 = dic.pop("k3", "不存在哦亲")
print(dic)
print(v1)
print(v2)

5. 随机删除一个,返回被删除的键和值

dic = {"k1": "v1",
       "k2": "v2"
       }
v = dic.popitem()
print(dic, v)

dic = {"k1": "v1",
       "k2": "v2"
       }
k, v = dic.popitem()
print(dic, k, v)

6.设置值,如果已经存在,不设置,获取当前key对应的值

如果不存在,设置,获取当前key对应的值

dic = {"k1": "v1",
       "k2": "v2"
       }
v = dic.setdefault("大白", "123")
v2 = dic.setdefault("k1", "11111111")
print(dic, v)
print(dic, v2)

7. 更新字典

dic = {"k1": "v1",
       "k2": "v2"
       }
dic.update({"k1": "11111", "k3": "liu"})
print(dic)

或者

dic = {"k1": "v1",
       "k2": "v2"
       }
dic.update(k1=123, k3 = 345)
print(dic)

重要:keys()  values()  items()  get  update

补充:

in dic 默认找的是key

in dic.values() 能找到values

dic = {"k1": "v1",
       "k2": "v2"
       }
v = "k1" in dic
v2 = "v1" in dic.values()
print(v)
print(v2)

布尔值:在内存中就表现为0和1

转换:bool(...)

以下情况为假:None   ""   ()   []   {}  0   ====>False  

一个奋斗中的产品小白
原文地址:https://www.cnblogs.com/dabai123/p/10962772.html