day3_字典

 

字典:

  1. 字典用 {} 表示
  2. 数据类型:  dict
  3. 字典的存储方式:  key=value     --  键对应值
  • 只有不可变的数据类型才能作为 key   -- []不能作为key
  • 字典的 value 可以是任意数据类型

    4.字典是无序的数据集合,不能根据索引来取值

    5.字典用 key 来取 value

  • dic = {"1":110,"2":666}
    n = dic["1"]
    print(n)

    6.字典可以被for循环,默认循环字典的 key

字典的方法

  • dic = {"1":"周杰伦","2":"周星驰","3":"大坏男孩"}
    # 取字典的key
    for i in dic.keys():
    print(i)
    # 取字典的值
    for i in dic.values():
    print(i)
    # 取字典的键值,元祖(key,value)
    for i in dic.items():
    print(i)
  • # update(key=value)
    # key不能是数字,只能是字母、下划线和中文
    # 如果key存在,则修改value;key不存在,则新增
    dic.update(idol = "星爷")
    print(dic)
    dic.update(idol = "前女友")
    print(dic)
    # update({key:value})
    # 循环传入的字典,把key和value添加或者修改,组成新的键值对
    dic.update({'男神':"胡歌","女神":"母上大人"})
    print(dic)
    dic.update({"1":"Jay"})
    print(dic)
  • #setdefault(key,value)
    # 如果key存在,则不做任何操作;key不存在,则把传入的key和value组成新的键值对
    dic.setdefault("4","My ideal")
    print(dic)
    dic.setdefault("1","Joy")
    print(dic)
  • # 根据key删除value,key不存在,则报错
    dic.pop("3")
    print(dic)
    dic.pop("4")
  • # clear()  清空字典
    dic = {"1":"周杰伦","2":"周星驰","3":"李叶彬"}
    dic.clear()
    print(dic)
  • # 删除字典:del
    del dic
    print(dic)
  • # 浅拷贝:copy()
    n = dic.copy()
    print(n)
  • # dic.get(key, message)
    # 如果key存在,则返回value;如果key不存在,则默认返回None:message不为空,返回自己定义的内容
    n = dic.get("3")
    print(n)
    m = dic.get("4")
    print(m)
    p = dic.get("4","666")
    print(p)
  • # fromkeys(iterable,value)  iterable(能被迭代,能被for循环的数据。例如:字符串、列表、元祖)
    # 元素和value一一对应,组成键值对,返回一个新的字典
    d = dic.fromkeys([1,2,3],"My idol")
    print(d)
    print(type(d))

随堂练习

  • dic = {
    "k": [
    2,
    3,
    "hello",
    {
    "hello": {
    "a": "b"
    },
    False: (
    2, 3, 4, {
    "kk2": {"abc": [4, 5, 6, {"kk3": 888}]}
    }
    )
    }
    ]
    }

    # 通过for循环取出dic字典所有数字的和
    n = 0
    for i in dic.values():
    print(i)
    for i1 in i:
    if type(i1) == int:
    n = n + i1
    print(n)
    elif type(i1) == dict:
    print(i1)
    for i2 in i1.values():
    if type(i2) == tuple:
    print(i2)
    for i3 in i2:
    if type(i3) == int:
    n = n + i3
    print(i3)
    print(n)
    else:
    print(i3)
    for i4 in i3.values():
    print(i4)
    for i5 in i4.values():
    print(i5)
    for i6 in i5:
    if type(i6) == int:
    n = n + i6
    else:
    print(i6)
    for i7 in i6.values():
    n = n + i7
    print(i7)
    print(n)
    print(n)

    # 打印出dic字典的值888
    a = dic.get("k")[-1].get(False)[-1].get("kk2").get("abc")[-1].get("kk3")
    print(a)

 

posted @ 2019-07-04 11:37  方缘  阅读(150)  评论(0编辑  收藏  举报