zoukankan      html  css  js  c++  java
  • 字典

    字典

    字典(dict)是python中唯一的一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是
    唯一的. 在保存的时候, 根据key来计算出一个内存地址. 然后将key-value保存在这个地址中.
    这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key'必须是可hash的,
    如果你搞不懂什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的。
    那么可哈希就意味着不可变. 这个是为了能准确的计算内存地址⽽规定的.
    已知的可哈希(不可变)的数据类型: int, str, tuple, bool
    不可哈希(可变)的数据类型: list, dict, set
    语法 : {key1: value1, key2: value2....}
    注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
    # 合法
    dic = {123: 456, True: 999, "id": 1, "name": 'sylar', "age": 18, "stu": ['帅哥', '美⼥'], (1, 2, 3): '毛毛'}
    print(dic[123])
    print(dic[True])
    print(dic['id'])
    print(dic['stu'])
    print(dic[(1, 2, 3)])
    # 不合法
    # dic = {[1, 2, 3]: '周杰伦'} # list是可变的. 不能作为key
    # dic = {{1: 2}: "哈哈哈"} # dict是可变的. 不能作为key
    dic = {{1, 2, 3}: '呵呵呵'} # set是可变的, 不能作为key

    dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的.

    而hash表不是连续的. 所以不能进⾏切片⼯作. 它只能通过key来获取dict中的数据

    一.字典的增删改查

    dic[key] = value

    dic.setdefault(key,value) 如果键在字典中存在不进行任何操作,否则就添加

    可以通过key查询,没有这个key返回None

    ====================================================================

    pop(key) 有返回值 返回的是被删除value
    del dic[key]
    popitem() 随机删除
    clear() 清空字典


    ======================================================================

    dic[key] = value
    dic.update(字典)

    =======================================================================

    get(key)
    dic[key]
    for 循环
    setdefault(key)

    =======================================================================

    二.其他操作

    keys 获取到所有的键存在一个高仿的列表中

    values 获取到所有的值存在一个高仿的列表中

    items 获取到所有的键值对已元祖的形式存在一个高仿的列表中

    解构:

    a,b = 1, 2

    a,b = (1,2)

    a,b = [1,2]

    三.字典嵌套

    dic = {
           'name':'小王',
           'age':43,
           'wife':{
               'name':'小章',
               'age':39,
               'salary':100000
            },
            'baby':[
               {'name':'熊大','age':18},
               {'name':'熊二','age':15},
            ]}
    dic['baby'][0]['age'] = 19
    print(dic)
     
  • 相关阅读:
    python中的map,reduce,filter函数和lambda表达式
    GAN相关:SRGAN,GAN在超分辨率中的应用
    GAN相关:PAN(Perceptual Adversarial Network)/ 感知对抗网络
    GAN相关 : pix2pix模型
    GAN相关(二):DCGAN / 深度卷积对抗生成网络
    NCRE-3 网络技术概念图:局域网技术
    NCRE-3 网络技术概念图:路由设计基础
    NCRE-3 网络技术概念图:IP地址规划设计技术
    NCRE-3 网络技术概念图:中小型网络系统总体规划与设计方法
    NCRE-3 网络技术概念图:网络系统结构与设计基本原则
  • 原文地址:https://www.cnblogs.com/zhao-ting/p/9401657.html
Copyright © 2011-2022 走看看