zoukankan      html  css  js  c++  java
  • 字典

    字典—dict

    一、字典的定义:
    • 字典(dict)是Python中唯一一个映射类型,它是以{}括起来的键值对组成。在字典中键是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存在这个地址中。这种算法被称为hash算法。所以,在dict中储存的key-value中的key必须是可hash的,可hash就意味着不变。

    • 语法

      {key1:value1,key2:value2....}

      注意;key必须是不可变的(可hash的),value可以保存任意数据类型
    • 特点

      • 无序:Python3.6版本上默认了以咱们定义的的顺序,Python3.5以下是随机显示的
      • 可变数据类型
      • 可储存大量数据,比列表还大
      • 能够将数据进行关联,比较消耗内存
    二、字典的相关操作

    ​ dic = {'a':'b','b':'c'}

    • 增(2种)
      dic['c']=['d']         注:给出key和value添加,如果key已存在则会替换value
      
      dic.setdefault('c','d')   注:先去字典中查看key存不存在,如果key存在会返回key所对应的value(可用于查找),如果key不存在就添加key和value
      
    • 删(5种)
      注:字典中没有remove
      # dic.pop('a')          注:指定key弹出,有返回值,返回删除的value
      
      # dic.popitem()         注:随机弹出,有返回值,返回删除的value
       
      del dic['a']            注:指定key删除
      del dic                 注:删除整个字典
      dic.clear()             注:清空字典,得到空字典
      
    • 改(2种)
    dic['key'] = '新的值'        注:指定key修改,key不存在就新增
    dic.update({1:2,'a':'a1'})  注:用字典更新字典,存在的替换,没有的新增,原来有这次没有的不变
    
    • 查(2种)
      注:查询只能通过key获取value,不能通过value获取key
    print(dic['key'])           注:指定key查找value,key不存在会报错
    print(dic.get(key,'返回'))   注:指定key查找value,key不存在会返回给出的返回值,默认None
    
    • 其他相关操作
    dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
    dic.keys()   # 得到key的高仿列表,但不是列表,不支持索引,支持迭代遍历
    
    dic.values() # 得到value的高仿列表
    
    dic.items()  # 得到由(key,value)成对组成的元组组成的列表
    
    for el in dic: # 遍历列表得到key
    for el in dic.keys():
    for el in dic.values():
    for el in dic.items():   =>  (key,value)
    for k,v in dic.items():  => 得到key和value   注:解构
        
    for el in enumerate(dic,start): # 给你要迭代的对象加一个序号start默认是0,枚举
    
    三、字典的嵌套
    dic = {
        101:{1:['周杰伦','林俊杰'],2:{'汪峰':['国际章','前妻一','前妻二']}}
        102:{1:['李小龙','吴京','李连杰'],2:{'谢霆锋':['张柏芝','王菲']},3:['大象','奇奇']}
        103:{1:['郭美美','干爹'],2:{'王宝强':['马蓉','宋哲']}}
    }
    print(dic["102"][3][0]) => "大象"
    
    • 逐层用key查找
  • 相关阅读:
    spark编译报错信息简介
    [LintCode]各位相加
    [算法]头条面试—奇数位升序偶数位降序链表排序
    [算法]循环打印矩阵,蛇形矩阵专题
    [LeetCode]146.LRU缓存机制
    [算法]死磕递归和动态规划专题算法
    Storm学习笔记——高级篇
    fail-fast和fail-safe
    阿里巴巴面试之利用两个int值实现读写锁
    [爬虫]Python爬虫进阶
  • 原文地址:https://www.cnblogs.com/maqian/p/11904696.html
Copyright © 2011-2022 走看看