字典 dict :

      key--vlaue

      储存大量的数据,而且是关系型数据,查询速度快(二分查询)

数据类型分类:

      可变数据类型(不可哈希):list(列表) , dict(字典), set(集合)

      不可变数据类型(可哈希):int(整型), bool(布尔型), str(字符串), tuple(元组)

          字典的键: 不可变数据类型。

          字典的值: 任意数据类型。

      容器类型:

          容器类(承载各种数据类型):list , tuple , dict

字典的键是唯一的。

字典的顺序:

      3.5之前,字典是无序的。

      3.6开始,字典创建的时候,按照一定的顺序插入数值,看起来是有序的。

字典的  增 删 改 查

   增

      第一种:有则覆盖,无则添加。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic)
dic['name'] = '懒笨呆'
dic['addr'] = '学校'
print(dic)

      第二种:无则添加,有则不变。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic)
dic.setdefault('name','懒笨呆')
dic.setdefault('addr','学校')
print(dic)

    删   pop(key)  有返回值,如果删除的是不存在的键会报错,所以一般自定义返回内容

一般定义为None. pop(key,None)

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic.pop('hobby'))
print(dic.pop('addr',None))
print(dic)

     clear  清空字典内容,且保存空字典。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
dic.clear()
print(dic)

     del  删除字典或者指定键删除。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
# del dic
# print(dic)
del dic['name']
print(dic)

     popitem    随机删除  返回删除的元组形式的键值对

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
dic.popitem()
print(dic)

   改

          第一种:直接对已有的键进行赋值。覆盖原有的value.

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
dic['name'] = '懒笨呆'
print(dic)

       第二种:update    两个字典(dic,dic2),dic.update(dic2) ,  dic2 不变。dic2 直接将 dic 中原有的键值对覆盖  并且将 dic2 多出来的键值对添加到 dic 中。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
dic2 = {
'name':'懒笨呆',
'addr':'学校'
}
dic.update(dic2)
print(dic2)
print(dic)

    查   dict [key]   如果key不存在,则会报错。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic['name'])
print(dic['name1'])

        get(key)  有返回值,默认返回None,可以自定义返回值。get(key,'返回值')

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic.get('name1'))
print(dic.get('name1','没有此键值对'))

     values()   key()  items()  将字典转换成类似列表的类。

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
# print(dic.values())
# for i in dic.values():
# print(i)
# print(dic.keys(),type(dic.keys()))
# for i in dic.keys():
# print(i)
print(dic.items(),type(dic.items()))
for i in dic.items():
print(i)

特殊类型 dict 转换成 list

 dic = {
'name':'顾清秋',
'age':'',
'hobby':'Msusic'
}
print(dic.values()) #转化成类似于列表的特殊类型
print(list(dic.keys())) #特殊类型转换成列表

概念: 分别赋值

 a,b = 2,3
print(a,b)
a,b = (2,3)
print(a,b)
a,b = [2,3]
print(a,b)

python' s fifth day for me dict的更多相关文章

  1. python之 list、tuple、dict、set

    2016-08-24   14:32:59 list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 例如:定义一个列表L,里面存放了一些姓氏 ...

  2. Python中的两种结构dict和set

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 假设要根据同学的名字查找对应的成绩 如果 ...

  3. Python(一)list tuple dict set

    这篇文章是为了复习之前学的python的数据结构: 原文链接:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a ...

  4. 【python】为什么修改全局的dict变量不用global关键字

    转自:http://my.oschina.net/leejun2005/blog/145911?fromerr=qnPCgI19#OSC_h4_8 为什么修改字典d的值不用global关键字先声明呢? ...

  5. python学习中,list/tuple/dict格式化遇到的问题

    昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...

  6. Python笔记·第六章——字典 (dict) 的增删改查及其他方法

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...

  7. python中list、tuple、dict、set的使用

    1.list列表 list是一种可变的,有序的列表,可以随时添加和删除其中的元素. 其格式如下:list-name=[element1,element2,....] >>> nums ...

  8. 【python】python中的json、字典dict

    定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式 ...

  9. python中in在list和dict中查找效率比较

    转载自:http://blog.csdn.net/wzgbm/article/details/54691615 首先给一个简单的例子,测测list和dict查找的时间: ,-,-,-,-,,,,,,] ...

  10. python基本数据类型list,tuple,set,dict用法以及遍历方法

    1.list类型 类似于java的list类型,数据集合,可以追加元素与删除元素. 遍历list可以用下标进行遍历,也可以用迭代器遍历list集合 建立list的时候用[]括号 import sys ...

随机推荐

  1. css预处理器sass学习

    SASS 叫做css预处理器,他的基本思想是用一门专门的编程语言来进行页面样式的设计,然后在编译成正常的css文件. Sass的用法 安装 sass是用ruby语言写的,所以我们在安装sass之前要先 ...

  2. 影响wifi信号强度因素

    影响WIFI信号强度因素: 1.室内错综复杂的环境,会在一定程度上导致WIFI无线信号产生多径传播现象,从而导致信号强度的不稳定性: 2.室内的人员密集程度和人员流动情况也会对WIFI信号强度产生影响 ...

  3. LeetCode OJ:Search a 2D Matrix(二维数组查找)

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  4. LeetCode OJ:Merge Sorted Array(合并排序的数组)

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  5. delete和truncate区别

    相同之处:truncate在功能上与不带WHERE子句的delete 语句相同:二者均删除表中的全部行.小心使用truncate,删除后就没有了 1.delete : 删除"表格记录&quo ...

  6. mysql中delete的表别名使用方法

    在 mapper.xml 中的 dynamicWhere 动态查询中使用了表别名,Delete 语句引用了动态查询,如下: <delete id="delete" param ...

  7. 用百度地图API打造方便自己使用的手机地图

    有钱人咱就不说了,因为偶是个穷银--因为穷,所以去年买的Huawei C8650+到现在还在上岗,对于没有钱买好的配置的手机的童鞋来说,类似于百度,谷歌,高德等商家的地图在自己的机器上跑起来确实是有点 ...

  8. 《深入理解java虚拟机》学习笔记之虚拟机即时编译详解

    郑重声明:本片博客是学习<深入理解java虚拟机>一书所记录的笔记,内容基本为书中知识. Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块 ...

  9. TensorFlow官网访问不了

    相信很多搞深度学习的小伙伴最近都为访问不了 TensorFlow官网 而苦恼吧!虽然网上也给出了一些方法,但是却缺少一个很重要的步骤.接下来,我就给大家讲解一个完整的过程,大牛绕过. 1.更改Host ...

  10. django初探-创建简单的博客系统(一)

    django第一步 1. django安装 pip install django print(django.get_version()) 查看django版本 2. 创建项目 打开cmd,进入指定目录 ...