• 05_python_字典


    一、字典定义

      字典是python中唯一的映射类型,以{ }括起来的键值对组成,在dict中key是唯一的.在保存时,根据key来计算一个内存地址,然后把key-value保存至地址中.这种算法是hash算法.所以 key必须是不可变数据类型(即可hash的),value是不限制的,dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽hash表不是连续的. 所以不能进行切片操作. 它只能通过key来获取dict中的数据

      可hash(不可变)数据类型: int  str   tuple  bool

      不可hash(可变)数据类型: list  dict  set

      语法: dic = {key1: value1key2: value2}

    二、字典的增删改查

      1、增

     1 dic = {}
     2 dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组
     3 合进dict
     4 dic['age'] = 18
     5 print(dic)
     6 # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
     7 dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.
     8 dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会
     9 起作⽤
    10 print(dic)

      2、删除

    1 ret = dic.pop('joy')
    2 print(ret)
    3 
    4 del dic['joy'] #key值删除
    5 print(dic)
    6 
    7 ret = dic.popitem() # 随机删除
    8 
    9 dic.clear() # 清空字典中的所有内容

      3、修改

    dic = {"id": 123, "name": 'sylar', "age": 18}
    dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
    dic.update(dic1) #把dic1中的内容更新dic中,如果key重名,则修改替换,如果不存在key,则新增

      4、查询

    # 查询一般用key来查找具体的数据
    print(dic['name']) #如果查询的key不存在会报错
    print(dic.get('ok'))
    print(dic.get('syslay'))  # None
    print(dic.get('syalr', '')) #

    三、字典其他操作

     1 dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
     2 print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不⽤管它是
     3                         # 什么.当成list用就行
     4 
     5 for key in dic.keys():
     6     print(key)
     7 
     8 print(dic.values()) # dict_values([123, 'sylar', 18, '科⽐'])当list来⽤
     9 
    10 for value in dic.values():
    11     print(value)
    12 
    13 print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), #
    14                          #('age',18), ('ok', '科⽐')]) 这个东⻄也是list. 只不过
    15                          #list中装的是tuple
    16 
    17 for key, value in dic.items(): # ?? 这个是解构
    18     print(key, value)
    19 
    20 # 解构
    21 a, b = 1, 2
    22 print(a, b)
    23 
    24 (c, d) = 3, 4
    25 print(c, d)
    26 
    27 e, f = [1, 2, 3] # 解构的时候注意数量必须匹配
    28 print(e, f)

    四、字典嵌套

     1 # 字典的嵌套
     2 dic1 = {
     3     "name": "汪峰",
     4     "age": 18,
     5     "wife": {
     6         "name": '章⼦怡',
     7         "age": 28
     8     },
     9     "children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'],
    10     "desc": '峰哥不会告我吧. 没关系. 我想上头条的'
    11 }
    12 print(dic1.get("wife").get("name"))

     

  • 相关阅读:
    景瑞地产商业智能BI整体实施过程
    域名访问和IP访问问题
    sitemesh定义多个装饰器
    8.8.2 EXPLAIN Output Format 优化输出格式
    Python_List对象内置方法详解
    Python_List对象内置方法详解
    Python_序列对象内置方法详解_String
    Python_序列对象内置方法详解_String
    CentOS设置服务开机启动的两种方法
    perl 没有关键文件句柄引起的逻辑错误
  • 原文地址:https://www.cnblogs.com/hq82/p/9605315.html
Copyright © 2020-2023  润新知