字典和枚举

Posted luyi84895838

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字典和枚举相关的知识,希望对你有一定的参考价值。

字典

为什么要有字典

列表可以存储大量数据.数据之间的关联性不强.
列表的查询速度比较慢(~据说相差不大。在大数据情况下母鸡)

什么是字典数据类型

字典{}花括号,括起来,以键值对形式存取:
    - 键必须是不可变的数据类型:唯一的
    - 值可以是任意数据类型,对象.
    - 字典3.5版本之前(包括3.5)是无序的,字典3.6会按照初次建立字典的顺序排列学术上不认为是有序的.字典在3.7版本后有序的.
    - 字典的优点:查询速度非常快,存储关联性数据
    - 字典的缺点:以空间换时间(字典查询速度非常快的原因)

字典的创建方式

- 方式一:dic = dic((("one",1),("two":2),("three":3)))
- 方式二:dic = dict(one = 1,two = 2,three = 3)
- 方式三:dic = dict({"one":1,"two":2,"three":3})

字典的增删改查

dic = {"name":"luyi","age":18}

增:
    - dic["sex"] = "男"    直接增加,如果有的话就修改了
    - dic.setdefault("hobby") 增加key,如果无值则值为NONE
      dic.setdefault("hobby","天天") 有值则加
      总结: 有则不变,无则增加
删:
    pop 按照键删除键值对.返回值为key对应的值.
        dic.pop("age")
    设置如果没有删除对象时的返回值
        dic.pop("dd","没有此键")
    设置字典中第二个参数,如果没有第一个键.则返回第二个参数
改:
    dic["name"] = "帅" 
    update
      dic.update(se = "rpg")   有则更改,无则增加(目测数字key不能用update)
查:
    get 
    li = dic.get("hobby")
    lt = dic.get("hobby","第二个为返回值")  第二个为返回值

    dic['键']   也可以查询

三个字典的特殊方法

keys 
dic.keys  列出字典中所有的键
    li = dic.keys()
    结果为:dict_keys(['name', 'age', 'hobby'])
vlaues
dic.values  列出字典中所有值
items(得到键值对)
for key,value in dic.items():
        print(key,value)可以得到列表所有的key 和value
    name luyi
    age 18
    hobby ['天天', 'rpg']

字典的嵌套

dic={'s':{'s':'a'}}

可以无限嵌套

枚举

li = ["a","b","c"]
for i in enumerate(li):
    print(i)


--->
    (0, 'a')
    (1, 'b')
    (2, 'c')

将可迭代类型的索引及其对应的元素返回。拆包和字典恰当使用有妙用

以上是关于字典和枚举的主要内容,如果未能解决你的问题,请参考以下文章

java开发中使用枚举表述数据字典

Python代码阅读(第40篇):通过两个列表生成字典

13 个非常有用的 Python 代码片段

Java中枚举的写法和用法

字典和枚举

Python代码阅读(第19篇):合并多个字典