zoukankan      html  css  js  c++  java
  • 五、字典

    字典(dict)

    特性

    • 以多占存储空间换读取速度
    • 存储大量的关联型的数据,查询速度非常快

    数据类型的分类

    • 可变(不可哈希)的数据类型:list dict set
    • 不可变(可哈希)的数据类型:int str bool tuple

    创建

    语法:{key1:value, key2:value}(以键值对的形式存储关联型内容,键名指向对应值)

    • key:键名必须唯一,必须是不可变的数据类型:int str(其他不常用)

    • value:任意值,任意的数据类型及对象

    例:以三种方式创建字典 {'one': 1, 'two': 2}

    d1 = dict((('one', 1), ('two', 2)))
    d3 = dict({'one': 1, 'two': 2})
    d2 = dict(one=1, two=2)
    

    增删改查

    • 直接增加:dict[key] = value (增加键与值,存在重复键则改值)
    • 设置默认值:dict.setdefault(key,value)(有键则不变,无则加)
    • 追加字典:dict.update(字典)(可追加多个键值对)

    • 按键名删:dict.pop(key, 参数) (可返回删除值,无此键会报错,设置参数则返回参数,参数可自定义)

    • 删除键:del dict[key](无此键会报错,不建议)

    • 清空:dict.clear()


    dict[key] = value(有此键则改动,无此键则增加)


    • 获取键的值:dict.get(key, 参数) (无此键返回None,设置参数则返回参数,返回参数可自定义)

    • 以键去查询:dict[key](没有则报错,不建议)


    循环注意:循环字典时不可以改变它本身的大小,强制报错

    # 转特殊格式再转列表,循环主体为列表改变字典
    for key in list(dic.keys()):
        
    # 循环放入新列表再循环新列表改变字典
    l = []
    for i in dic:
        if 'k' in i:
            l.append(i)
    for key in l:
        
    # 置换法:将满足的条件放入新字典
    d = {}
    for i in dic:
        if 'k' not in i:
            d[i] = dic[i]
            dic = d
    

    特殊格式

    • 获取字典的键:dict.keys()
    • 获取字典的值:dict.values()
    • 获取字典的键值对:dict.items()
    d = {'a1': 1, 'a2': 2}
    d.keys()	# dict_keys(['a1', 'a2''])
    

    使用方法

    • 转换列表:list(d.keys)(将所有键名转化为一个列表)
    • for循环:for i in d.keys():print(i)(循环输出键名)

    拆包

    定义多个变量对应同等数量的元素

    a,b = 1,2
    print(a, b)				# 1 2
    a,b = ('你好', '世界')
    print(a, b)				# 你好 世界
    

    嵌套

    列表的索引为键名数字,字典的索引为键名

    dic = {'name':[2, {'age:18'}]}
    dic['children'][1]['age']			# 18
    

    fromkeys()

    创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的值

    语法:dict.fromkeys(seq, value)

    • seq:字典的键序列
    • value:设置键序列对应的值,默认为 None,可指定值
    seq = ('a1', 'a2', 'a3')
    d = d.fromkeys(seq)
    print(d)     # {'a1': None, 'a2': None, 'a3': None}
    
    d = d.fromkeys(seq, 66)
    print(d)     # {'a1': 66, 'a2': 66, 'a3': 66}
    
    d = d.fromkeys(seq, [1,2])
    print(d)	 # {'a1': [1, 2], 'a2': [1, 2], 'a3': [1, 2]}
    d['a2'].append(3)
    print(d)	# {'a1': [1, 2, 3], 'a2': [1, 2, 3], 'a3': [1, 2, 3]}
    

  • 相关阅读:
    最常用的开源游戏引擎
    3D图形数学(3D Graphics Math)
    中国航运网遭遇挂马 黑客悄悄植入病毒 狼人:
    Windows 7 RC今日开放下载 服务器或不堪重负 狼人:
    周杰伦等名人网站频被挂马 粉丝上网需警惕 狼人:
    Adobe新漏洞 金山清理专家急推专补工具 狼人:
    Twitter安全问题接连不断 黑客再次入侵 狼人:
    趋势科技收购加拿大安全公司Third Brigade 狼人:
    金山携手PICC探索杀毒软件服务全新模式 狼人:
    “假冒hao123”“北大青鸟”被黑 钓鱼挂马两不误 狼人:
  • 原文地址:https://www.cnblogs.com/wzos/p/12541118.html
Copyright © 2011-2022 走看看