我的python之路--Day5

字典

基本概述:

  字典用大括号{}括起来,内部使用key:value 来保存数据

  例如{"Jay":"周杰伦","eason":"陈奕迅","JJ","林俊杰"}

  字典的key是固定的,不可变的,就是说key可哈希,value则没有限制

  key具有不等性,就是一个字典中的key不允许有相同的

  字典的保存顺序不是按照我们自己的意愿来的,也可以认为是无序的

  字典也可以进行遍历,但遍历结果为key

dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
for el in dic:
    print(el)

  打印结果为

基本操作:

  增删改查

  增加:

    dict[一个不存在的key] = value, 表示把一个新的键值对加入到字典里,如果这个key已经存在,则会替换掉原来的key对应的value

    dict.setdefault(key,value), 表示加一个新的键值对到字典,如果这个key已经存在,则不再继续保存

dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
dic["黑旋风"] = "李逵"
dic["及时雨"] = "宋江老大"
dic.setdefault("智多星","吴用")
print(dic)

    执行结果为:

  删除:

    dict.pop(key), 删除key对应的键值对,返回的是key对应的value

    dict.popitem(), 随机删除一对键值对,返回的是元组(key,value)

dic = {"牌牌":"你去哪里了", "晓雪":"你快回来.", "雪雪": "又走了"}
ret = dic.pop("晓雪") # 删除一个元素. 返回这个元素的value值
print(ret)
del dic["雪雪"]
ret1 = dic.popitem() # 返回给你的是一个元组.
print(ret1)

    执行结果为:

  修改:

    dict[已有的key] = 新value, 表示将原有字典中key对应的value修改为新的value

    dict1.update(dict2), 把dict2中的键值对更新到dict1中.如果dict2中的key已经在dict1中出现,那么将dict1中key对应的value替换为dict2中的,如果不存在,就添加一对键值对

dic1 = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
dic2 = {"李晨": "范冰冰", "邓超": "孙俪", "王祖蓝": "李亚男"}
dic1.update(dic2)
print(dic1)

    执行结果为:

  查询:

    dict[key], 查询key对应的value,如果没有的话,报错

    dict.get(key,默认值), 查询key对应的value,如果没有的话,返回默认值,没有给默认值的情况下,返回None

    dict.setdefault(key,value), 首先判断字典中有没有这个key,如果没有的话,新增到字典中,如果有的话,用这个key去字典中查询,返回查询的结果

dic = {"及时雨":"宋江", "易大师":"剑圣"}
dic.setdefault("及时雨", "诺克萨斯")    # 可以帮我们添加
print(dic)
ret = dic.setdefault("及时雨123", "hello")
print(ret)
print(dic)

    执行结果为:

常用方法:

  keys(),values()和items()

    dict.keys(), 拿到所有的key,返回key的集合,返回结果像是列表,但实际不是列表,但是可以执行列表的操作,并且可以进行迭代循环

    dict.values(), 拿到所有的value,返回value的集合,返回结果像是列表,但实际不是列表,但是可以执行列表的操作,并且可以进行迭代循环

    dict.items(), 拿到所有的键值对,返回结果像是列表,但里边的元素是元组

dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
print(dic.keys())
print(dic.values())
print(dic.items())

  执行结果为:

解构:

  a,b = (1,2)

  利用结构可以遍历dict

1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
2 print(dic.items())  
3 for k, v in dic.items():
4     print(k , v) 

  执行结果为:

字典的嵌套:

  

ic = {
    "name":"汪峰",
    "age": 58,
    "wife":{
        "name":"国际章",
        "salary": 180000,
        "age": 37
    },
    "children":[
        {"name":"老大", "age": 18},
        {"name":"老二", "age": 118}
    ]
}
print(dic["children"][1]["age"])    # 输出汪峰孩子老大的年纪

print(dic["wife"]['salary'])     # 输出汪峰妻子的工资

猜你喜欢

转载自www.cnblogs.com/knowledgeYang/p/9274427.html