Python基础篇 -- 字典

字典

dict. 以 {} 表示, 每一项用逗号隔开, 内部元素用 key: value的形式来保存数据

例子: dict.{"JJ":"林俊杰","Jay":"周杰伦"}

查询效率非常高,通过key来查找元素 内部使用key来计算一个内存地址(暂时) , hash 算法 . 要求 key 必须是不可变的数据类型(key 必须是课hash的数据类型)

字典没有切片

字典的增删改查

  1. 新增

    # 第一种方法  直接增加
    dic = {}
    dic["巴萨"] = "梅西"
    dic["尤文"] = "C罗"
    print(dic)
    
    # 第二种方法
    dic = {}
    dic.setdefault("切尔西", "阿扎尔")   #setfault 设置默认值
    dic.setdefault("切尔西", "德罗巴")  
    print(dic)
    #  打印结果是  {"切尔西":"阿扎尔"} 如果存在了key,不会替换掉原来的  如果 value 没有值  打印结果是 None
    
  2. 删除

    dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
    dic.pop("皇马")  # 指定key删除  必须有一个参数
    dic.popitem()    # 随机删除
    dic.clear()      # 清空字典
    del dic["key"]   # 删除
    
  3. 修改和查询

    # 修改
    dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
    
    dic["key"] = "新value"   # 替换掉key 所对应的旧 value
    
    dic2 = {"巴萨":"伊涅斯塔", "皇马":"拉莫斯", "曼城":"萨内"}
    dic.update(dic2)   # update :更新
    print(dic) 
    # 打印结果为  {'巴萨': '伊涅斯塔', '皇马': '拉莫斯', '曼城': '萨内', '尤文': 'C罗', '巴黎': '内马尔'}
    
    
    # 查询
    dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
    print(dic["曼城"])  # 最直观, 直接用key  当key不存在时会报错
    
    print(dic.get("皇马","value 不在这里")  # 如果没有查询到key 会打印出 "value 不在这里" 这句话. 如果没有第二个参数  返回 None .
    
    setdefault()  # 1. 新增( 先看有没有可以, 如果有就过,  没有执行新增 ) 2. 根据key 把值返回
    

字典的相关操作

  • dic = {"巴萨":"梅西", "皇马":"莫德里奇", "曼城":"萨内", "尤文":"C罗", "巴黎":"内马尔"}
    # 对字典的遍历
    print(dic.keys())  # 得到一个像列表却不是列表的东西 dict_keys(['巴萨', '皇马', '曼城', '尤文', '巴黎'])
    for key in dic.keys():  # 找到字典中的 key
        print(key)          # 打印key
        print(dic[key])     # 打印value
    
    for key in dic:         #  字典本身是一个可迭代对象,可以直接进行for循环. 找到字典中的 key
        print(key)
        print(dic[key])     
    
    for value in dic.values():  # 找到字典中的 value
        print(value)            # 打印value
    
    print(dic.items())  # 拿到的是key 和 value   item  意思是 项
    # 打印结果 : dict_items([('巴萨', '梅西'), ('皇马', '莫德里奇'), ('曼城', '萨内'), ('尤文', 'C罗'), ('巴黎', '内马尔')])
    for item in dic.items():
        print(item)    #  打印结果是元组
        ('巴萨', '梅西')
        ('皇马', '莫德里奇')
        ('曼城', '萨内')
        ('尤文', 'C罗')
        ('巴黎', '内马尔')
        print(item[0],item[1]) 
        巴萨 梅西
        皇马 莫德里奇
        曼城 萨内
        尤文 C罗
        巴黎 内马尔
    
    # 注: 
    a, b = (10, 20) # 解构 解包   前面变量的个数和后面解包的个一致
    print(a)  # 结果 10
    print(b)  # 结果 20
    
    # 根据解构  可将  for item in dic.items():  简化成下面的形式
    
    for k, v in dic.items():  # 当需要遍历字典. 在操作中设计到key 和 value 的时候.
        print(k)
        print(v)
    
    
posted on 2019-06-08 14:52  ShenQiang  阅读(130)  评论(0编辑  收藏  举报