概念

无序的,可变的,键值对集合

定义

方式1

{key1: value1, key2: value2, ......}

方式2

fromkeys(S, v=None)

  • 静态方法:类和对象都可以调用
  • 类调用:dict.fromkeys("xxx", "yyy"),此处的dict指的是字典类型
  • 对象调用:dic.fromkeys("xxx", "yyy"),此处的dic指的是实例化的字典对象

注意

  • key不能重复,如果重复,后面的会把前面的覆盖
  • key必须是任意不可变类型

不可变的原因:

  • python的字典,采用哈希的方式实现
  • 简单存储过程:
    • 初始化一个表格,用来存放所有的值

      • 表格可以称为哈希表
    • 存储一个键值对的时候,会做如下操作
      • 根据给定的key,通过某些操作,得到一个在哈希表中的索引位置

        • 把key通过“哈希函数”转换成一个整型数字,称为哈希值
        • 将该数字对数组长度进行取余,取余结果当做下标
        • 如果产生了“哈希冲突”
          • 采用开放寻址法,通过探测函数查找下一个空位
      • 根据索引位置,存储给定的“值”
  • 简单查找过程
    • 再次使用哈希函数将key转换为对应的列表的索引,并定位到列表的位置获取响应的value

字典的意义

  • 可以通过key,访问对应的值,使得这种访问更具意义
  • 查询效率得到很大提升

常用操作

增加

dic[key] = value:当key不存在的时候,就是增加操作

删除

  1. del dic[key]:删除一个字典元素
  2. dic.pop(key[, default]):删除指定键值对,返回删除的值,如果key不存在,则直接返回给定的default值,如果也没有给default,则报错
  3. dic.popitem():删除按升序排序后的第一个键值对,并以元组的形式返回该键值对,如果字典为空,则报错
  4. dic.clear():删除字典内所有键值对,返回None,只是内容被清空,字典本身还存在

修改

只能改值,不能改key

修改单个键值对:dic[key] = value

批量修改键值对:oldDic.update(newDic)

查找

获取单个值

  1. dic[key]:如果key不存在,则报错
  2. dic.get(key[, default]):如果不存在则返回default,如果也没有default,返回None,但是原字典不会增加这个键值对
  3. dic.setdefault(key[, default]):如果key不存在,则设置指定的默认值,并返回该值,如果默认值没有指定,则使用None代替

获取所有值

dic.values()

获取所有的键

dic.keys()

获取所有的键值对

dic.items()

py3和py2的区别

python2中,上面几个直接是一个列表,可以通过下标进行获取指定元素

python3中,是Dictionary view objects

在python2中,还提供了viewkeys() viewvalues() viewitems(),作用相当于python3中的view objects

遍历

可以分别遍历键,值,键值对

也可以一起遍历:

for k,v in kvs:
......

in

in用在字典里,判断的是key

以前有一个方法:has_key(),来判断是否存在某个键值,现在已经不用了

Python:字典类型的更多相关文章

  1. [转载]关于python字典类型最疯狂的表达方式

    一个Python字典表达式谜题 让我们探究一下下面这个晦涩的python字典表达式,以找出在python解释器的中未知的内部到底发生了什么. # 一个python谜题:这是一个秘密 # 这个表达式计算 ...

  2. python字典类型

    字典类型简介 字典(dict)是存储key/value数据的容器,也就是所谓的map.hash.关联数组.无论是什么称呼,都是键值对存储的方式. 在python中,dict类型使用大括号包围: D = ...

  3. Python字典类型、

    字典类型: # msg_dic = {#     'apple': 10,#     'tesla': 100000,#     'mac': 3000,#     'lenovo': 30000,# ...

  4. python中字典类型的使用

    Python字典类型 字典是一种键值对的集合,键值对之间无序 字典类型的定义 采用{}或者dict()来创建字典对象,键值对之间使用:进行分隔. {<键1>:<值1>, < ...

  5. Python字典及相关操作(内含例题)

    Python字典类型 今天将会介绍一种在python中十分常见的组合数据类型——字典 通过一些实例来理解字典中的常规操作 什么是字典类型? 列表中查找是通过整数的索引(元素在列表中的序号)来实现查找功 ...

  6. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  7. Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习

    #coding=utf-8 __author__ = 'Administrator' #Python变量类型 #Python数字,python支持四种不同的数据类型 int整型 long长整型 flo ...

  8. python数据类型——字典类型

    字典(dictionary) python中唯一的映射类型,采用键值对(key-value)的形式储存数据,python对key进行哈希函数运算,所以key值必须是可哈希的,可哈希表示key必须是不可 ...

  9. Python编程Day6——元组类型、字典类型、集合

    一.元组类型(tuple) 1.用途:记录多个值,当多个值没有改变的需求此时元组更为合适 2.定义:在()内用逗号分隔开多个任意类型的值(参数为for可以循环的对象) 3.常用操作: 索引(正取向+反 ...

  10. Python的字典类型

    Python的字典类型为dict,用{}来表示,字典存放键值对数据,每个键值对用:号分隔,每个键值对之间用,号分隔,其基本格式如下: d = {key1 : value1, key2 : value2 ...

随机推荐

  1. 阻塞队列BlockingQueue之ArrayBlockingQueue

    ArrayBlockingQueue  是数组实现的有界阻塞队列,此队列按照先进先出(FIFO)的原则对元素进行排序. 构造方法: public ArrayBlockingQueue(int capa ...

  2. django 0

    web 框架的本质 - socket服务端 socket 收发消息 根据不同的路径返回不同的内容 模板渲染 jinja2 字符串替换 mvc model(模型/db) view(展示html) con ...

  3. python接口自动化测试 - requests库的post请求进行文件上传

    前言 如果需要发送文件到服务器,比如上传图片.视频等,就需要发送二进制数据. 一般上传文件使用的都是 Content-Type: multipart/form-data; 数据类型,可以发送文件,也可 ...

  4. main函数的参数详解

    1.定义 C语言规定main函数的参数只能有两个,习惯上这两个参数写为argc和argv.因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整 ...

  5. 数学算法(一):快速求斐波那契数第n项通过黄金分割率公式

    有一个固定的数学公式= =,不知道的话显然没法应用 首先黄金分割率接近于这个公式, (以下为黄金分割率与斐波那契的关系,可跳过) 通过斐波那契数列公式 两边同时除以 得: (1) 注意后一项比前一项接 ...

  6. Abaqus 载荷分类(部分)

    目录 1. 集中载荷 1.1 集中载荷施加方法 1.2 定义集中跟随力 1.3 指定文件定义集中节点力 2. 分布载荷 2.1 分布载荷分类 3. 热载荷 3.1 模拟热辐射 3.2 直接定义热流量 ...

  7. Spring-Bean的后置处理器

    Spring——Bean 后置处理器 Bean 后置处理器允许在调用初始化方法前后对 Bean 进行额外的处理. BeanPostProcessor 接口定义回调方法,你可以实现该方法来提供自己的实例 ...

  8. PHP通过thrift2访问HBASE

    前一段时间需要在网页上显示HBASE查询的结果,考虑用PHP来实现,在网上搜了一下,普遍都是用thrift作为接口来实现的.​ 参考博文:​ http://www.cnblogs.com/scotom ...

  9. Python 高级特性介绍 - 迭代的99种姿势 与协程

    Python 高级特性介绍 - 迭代的99种姿势 与协程 引言 写这个笔记记录一下一点点收获 测试环境版本: Python 3.7.4 (default, Sep 28 2019, 16:39:19) ...

  10. win10下Ubuntu18.04安装的简单教程

    win10下Ubuntu18.04安装的简单教程      操作系统:windows    软件:Vmware15.      一.下载 Ubuntu18.04镜像   Ubuntu18.04镜像下载 ...