字典 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. java处理HTTP请求

    import com.diyfintech.wx.service.HttpService; import org.springframework.stereotype.Service; import ...

  2. uva 10891 区间dp+记忆化搜索

    https://vjudge.net/problem/UVA-10891 给定一个序列x,A和B依次取数,规则是每次只能从头或者尾部取走若干个数,A和B采取的策略使得自己取出的数尽量和最大,A是先手, ...

  3. 转 IOS动态类型isKindOfClass, isMemberOfClass

    对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断对象类型 -(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例 -(BOOL) is ...

  4. ARM体系结构总结

    特殊功能寄存器与外设绑定,通用寄存器是与CPU绑定. ARM是RISC架构 常用ARM汇编指令只有二三十条 ARM是低功耗CPU ARM的架构非常适合单片机.嵌入式.尤其是物联网领域:而服务器等高性能 ...

  5. 《Drools7.0.0.Final规则引擎教程》第2章 追溯Drools5的使用

    2.1 Drools5简述 上面已经提到Drools是通过规则编译.规则收集和规则的执行来实现具体功能的.Drools5提供了以下主要实现API: KnowledgeBuilder Knowledge ...

  6. 《Unity 3D游戏客户端基础框架》概述

    框架概述: 做了那么久的业务开发,也做了一年多的核心战斗开发,最近想着自己倒腾一套游戏框架,当然暂不涉及核心玩法类型和战斗框架,核心战斗的设计要根据具体的游戏类型而定制,这里只是一些通用的基础系统的框 ...

  7. poj1655(dfs,树形dp,树的重心)

    这是找树的重心的经典题目. 树的重心有下面几条常见性质: 定义1:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心.定义2:以这个点为根,那么所有的子树(不算整个树自身)的大 ...

  8. 使用OpenCV对图像进行缩放

    OpenCV:图片缩放和图像金字塔 对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_A ...

  9. cookie跨站脚本漏洞解决方案

    近日项目碰到一个跨脚本注入的问题: 这安全测评工具也是厉害了,直接将脚本注入到cookie里头,以前没有碰到这样的情况. 之前写过一篇文章过滤跨脚本注入的问题.<浅谈XSS攻击原理与解决方法&g ...

  10. F4NNIU 学习目录 (2018-08-22)

    F4NNIU 学习目录 语言 C 语言 C 语言程序设计进阶 在线刷题 https://leetcode-cn.com/problemset/all/ 工具 Git 版本管理 在线教程 在线教程