1、字典介绍

  1.1  结构:  {key1: value1, key2: value2, ....} ,由很多键值对构成. 在字典的key-value(键值对)中, key(键)必须是可哈希(不可变)的, 而且是唯一的.

  1.2  字典的存储机制:  在dict中key是惟一的. 在保存的时候, 根据key, 通过哈希算法计算出一个内存地址, 然后将key-value保存在这个地址中;

                      在查询时, 直接查到key的哈希值 ,然后找到内存地址,将里面的key-value提取出来.

  1.3  可哈希(不可变)的数据类型: str, int, bool, 元组.

    不可哈希(可变)的数据类型: 列表, 字典, 集合.

  1.4  字典不能进行切片,只能通过key来提取出对应的value值.

2、字典增删改查

  2.1  增

      dic["key"] = "value"

      dic.setdefault("key","value")  ----> 若key存在,不修改value且返回对应的value; 若key不存在,则在字典后面添加新的键值对, 然后输出新的值value.

      dic.setdefault("key")  ----> 查找"key"对应的值, 有则输出value, 没有则输出None.

    删  

      dic.pop("key")  -----> 删除"key" 对应的键值对. 返回值为删除的key对应的value.

      dic.popitem()  ----> 删除最后一组键值对.返回值为删除的(key, value)元组形式.

      del dic["key"]  ----> 删除"key" 对应的键值对.

      dic.clear()  ----> 清空字典,变成{}

    改

      dic["key"] = "value"

      dic1.update(dic2)  ----> 把dic2字典里面的键值对添加到dic1里面去.

    查

      dic["key]  ---->没有值则报错.

      dic.get("key","value")  ---->有key对应的值则返回value, 没有的话则返回新value(第二个参数).

      dic.get("key")  ----> 没有则返回None.

      dic.setdefault("key")  ----> 没有值返回None.

3、其他操作

  dic.keys()  ----> 输出所有的键.

  dic.values()  ----> 输出所有的值.

  dic.items()  ----> 以元组的形式输出所有的键值对("key","value")("key","value")......

  如何遍历字典?

    for k, v in dic.items():

      print(k, v)    -----> 输出key, value (最佳方式, 推荐使用)

    for k in dic:

      print(k)  ----> 只输出key

  列表转字典

    key_lst = [1,2,3,4,5]

    value_lst = ["a","b","c","d","e"]

    方式一:   dic = {key_lst[i]: value_lst[i] for i in range(len(key_lst)) }

    方式二:   dic = dict(zip(key_lst,value_lst))   

key_lst = [1,2,3,4,5]
value_lst = ["a","b","c","d","e"] dic1 = {key_lst[i]: value_lst[i] for i in range(len(key_lst)) } # 方式一
dic2 = dict(zip(key_lst,value_lst)) # 方式二
print(dic1)
print(dic2)

列表转字典

  字典的切割

    dic = {1:"A",2:"B",3:"C",4:"D",5:"E",6:"F",7:"G"}

    index = [1,2,4,7]

    dic_new = dict[ [k,dic[k] ] for k in index ]  ----> {1: 'A', 2: 'B', 4: 'D', 7: 'G'}

 dic = {1:"A",2:"B",3:"C",4:"D",5:"E",6:"F",7:"G"}
index = [1,2,4,7]
dic_new = dict([k,dic[k]] for k in index)
print(dic_new)

字典伪切割

4、字典的嵌套

  找到子字典(value)对应的key名, 层层剖析.    

     

python摸爬滚打之day05----字典的更多相关文章

  1. 记录我的 python 学习历程-Day05 字典/字典的嵌套

    一.字典的初识 为什么要有字典 字典与列表同属容器型数据类型,同样可以存储大量的数据,但是,列表的数据关联性不强,并且查询速度比较慢,只能按照顺序存储. 什么是字典 先说一下什么叫可变与不可变的数据类 ...

  2. Python 优雅的操作字典【转】

    Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典. 1.1 创建字典 Python有两种方法可以创建字典,第一种是使用花括号,另一种是使用内建 函数dict ...

  3. 初学Python(三)——字典

    初学Python(三)——字典 初学Python,主要整理一些学习到的知识点,这次是字典. #-*- coding:utf-8 -*- d = {1:"name",2:" ...

  4. python编程基础知识—字典

    字典 在python中,字典是一系列键-值对,每个键都与一个值相关联,可使用键来访问相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典,即可将任何python对象用在字典中的值. 在pytho ...

  5. python调用数据返回字典dict数据的现象2

    python调用数据返回字典dict数据的现象2 思考: 话题1连接:https://www.cnblogs.com/zwgbk/p/10248479.html在打印和添加时候加上内存地址id(),可 ...

  6. python调用数据返回字典dict数据的现象1

    python调用数据返回字典dict数据的现象1 思考: 可以看到这两种情况,区别在于构造函数make()里赋值给字典dict的方式不同.使用相同的调用方式,而结果却完全不同.可以看到第二种情况才是我 ...

  7. python基本数据类型之字典

    python基本数据类型之字典 python中的字典是以键(key)值(value)对的形式储存数据,基本形式如下: d = {'Bart': 95, 'Michael': 34, 'Lisa': 5 ...

  8. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  9. Python 优雅的操作字典

    Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典. 来源:https://www.linuxzen.com/python-you-ya-de-cao-zuo ...

  10. Python数据类型详解——字典

    Python数据类型详解--字典 引子 已经学习了列表,现在有个需求--把公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Kwan", ...

随机推荐

  1. 【九天教您南方cass 9.1】02 从地形图上绘制纵横断面

    同学们大家好,欢迎收看由老王测量上班记出品的cass9.1视频课程, 测量空间的[九天教您南方cass]专栏是九天老师专门开设cass免费教学班.希望能帮助那些刚入行的同学,并祝您一臂之力. [点击索 ...

  2. 挖坑:handoop2.6 开启kerberos(全流程学习记录)

    目录: 1.涉及插件简介 2.安装步骤 3.日志错误查看 1.kerberos是什么东西 度娘指导: Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为 客户机 / 服务器 应用程序提供 ...

  3. wrk压测工具使用

    介绍分为四部分 1.wrk简述 2.wrk安装 3.wrk运行参数 4.wrk高级用法 1.wrk简述 当使用ab做压测的时候发现,ab的客户端消耗很大,而且测试时性能较差,测试redis,sprin ...

  4. javascript and jquery 代码块

    1.5秒隐藏 (setTimeout ) setTimeout( function(){ $('.ad_midd').slideUp(); } , 5000 )

  5. Java知多少(89)列表和组合框

    有两种类型的菜单:下拉式菜单和弹出式菜单.本章只讨论下拉式菜单编程方法.菜单与JComboBox和JCheckBox不同,它们在界面中是一直可见的.菜单与JComboBox的相同之处是每次只可选择一个 ...

  6. SAP项目的整体预算大概是多少?

    例如一家规模包括(5-6个生产型子公司),员工5000人,市值100亿,销售额每年20亿左右的集团公司.上SAP,预算怎么算? 这其中:1)软件费用一般多少? 2)用户费用是怎么算的? 3)维护费用又 ...

  7. plsql 常用函数-转

    PLSQL常用函数 1)处理字符的函数 || 或 CONCAT---并置运算符. 格式∶CONCAT(STRING1, STRING2) 例:’ABC’|| ’DE’=’ABCDE’ CONCAT(‘ ...

  8. README.md文件编辑

    111 蜗牛图片管理系统 =============== ## 安装环境 >+ thinkphp版本: >+ php版本:.0以上 >+ 需要安装在服务器环境,免费使用 ### 特点 ...

  9. python中利用redis构建任务队列(queue)

    Python中的使用标准queue模块就可以建立多进程使用的队列,但是使用redis和redis-queue(rq)模块使这一操作更加简单. Part 1. 比如首先我们使用队列来简单的储存数据:我们 ...

  10. nginx 反向代理 Nginx 502 Bad Gateway

    查看错误日志: 摘要: nginx反向代理出现502错误 通过查看日志发现错误信息 2018/01/10 17:58:20 [crit] 8156#0: *1 connect() to 127.0.0 ...