zoukankan      html  css  js  c++  java
  • Day-05 基础数据类型字典dict

    一、认识字典
    字典是成对的保存数据,以key:value的形式保存,用{}表示,每一项内容都是key:value,每项数据之间用逗号隔开
    字典中的key是不能重复的。存储是依靠着key来计算的。
    切记:在字典中存储的key-value中的key必须是可hash的,如果你搞不懂什么是哈希,暂时可以这样记,可以改变的都是不可哈希的,那么可哈希就意味着不可变,这个是为了能准确的计算内存地址而规定的。
    已知的可哈希(不可变)的数据类型:str、int、tuple、bool
    不可哈希(可变)的数据类型:list、dict、set
    二、字典的增删改查
    1、增加
    dic[key] = value
    setdefault(key, value)
    1 dic = {}
    2 dic['name'] = '周润发' # 如果dict中没有出现这个key, 就会新增⼀个key-value的组合进dict
    3 dic['age'] = 18
    4 print(dic)
    5 # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值
    6 dic.setdefault('李嘉诚') # 也可以往⾥⾯设置值.
    7 dic.setdefault("李嘉诚", "房地产") # 如果dict中已经存在了. 那么setdefault将不会起作⽤
    8 print(dic)
    字典增加操作
      2、删除
      pop(key)
      popitem()
      del dic[key]
      clear()
    1 ret = dic.pop("jay")
    2 print(ret)
    3 del dic["jay"]
    4 print(dic)
    5 # 随机删除.
    6 ret = dic.popitem()
    7 # 清空字典中的所有内容
    8 dic.clear()
    字典删除操作
      3、修改
      dic[key] = value
      dic1.update(dict2)
      
    1 dic = {"id": 123, "name": 'sylar', "age": 18}
    2 dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
    3 dic.update(dic1) # 把dic1中的内容更新到dic中. 如果key重名. 则修改替换. 如果不存在key, 则新增.
    4 print(dic)
    5 print(dic1)
    字典修改操作
      4、查询
      dic[key] 可能会报错
      dic.get(key)
      dic.setdefault()
     1 print(dic['name'])
     2 # print(dic['sylar']) # 报错
     3 print(dic.get("ok"))
     4 print(dic.get("sylar")) # None
     5 print(dic.get("sylar", "⽜B")) # ⽜B
     6 #流程:1. 先检测是否存在key,xxxx
     7 #     2. 根据你给的key把value查询出来
     8 #setdefault() 新增
     9 dic = {"jay":"周杰伦"}
    10 ret = dic.setdefault("jay_jj","林俊杰")
    11 print(dic, ret)
    字典查询操作
    三、常见操作
    keys() key的集合
    values() value的集合
    items() 键值对的集合(key,value)
     1 dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐"}
     2 print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不⽤管它是什么.当成list来⽤就⾏
     3 for key in dic.keys():
     4     print(key)
     5     print(dic.values()) # dict_values([123, 'sylar', 18, '科⽐']) ⼀样. 也当list来⽤
     6 for value in dic.values():
     7     print(value)
     8     print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',18), ('ok', '科⽐')]) 这个东⻄也是list. 只不过list中装的是tuple
     9 for key, value in dic.items(): # ?? 这个是解构
    10     print(key, value)
    11 # 解构
    12 a, b = 1, 2
    13 print(a, b)
    14 (c, d) = 3, 4
    15 print(c, d)
    16 e, f = [1, 2, 3] # 解构的时候注意数量必须匹配
    17 print(e, f)
    四、字符串嵌套
    # 字典的嵌套
    dic1 = {
     "name": "汪峰",
     "age": 18,
     "wife": {
     "name": '章⼦怡',
     "age": 28
     },
     "children": ['第⼀个⽑孩⼦', '第⼆个⽑孩⼦'],
     "desc": '峰哥不会告我吧. 没关系. 我想上头条的'
    }
    print(dic1.get("wife").get("name"))
    print(dic1.get("children"))
    print(dic1.get("children")[1])
  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/minusone/p/9836746.html
Copyright © 2011-2022 走看看