字典 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. 卸载MicrosoftBAF(删除C:\CommonFramework\instdata.dat)

    发现有个可疑文件夹 C:\CommonFramework ,而且还会不停的删除创建 C:\CommonFramework\instdata.dat 最后被发现这是必应的一个框架程序在捣鬼,在微软论坛里 ...

  2. Python正则表达式------进阶

    Python正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re ...

  3. Qt事件系统基本概念

    (转自:http://www.cnblogs.com/andy1987/p/3322059.html) 1. QT事件系统 Qt应用程序的消息处理是基于事件驱动的,程序的每个动作都是由某个事件所触发的 ...

  4. 【poj1195】Mobile phones(二维树状数组)

    题目链接:http://poj.org/problem?id=1195 [题意] 给出一个全0的矩阵,然后一些操作 0 S:初始化矩阵,维数是S*S,值全为0,这个操作只有最开始出现一次 1 X Y ...

  5. VMware安装VMwareTolls

    要先启动Ubuntu,用root用户进入. 然后点击VMware的虚拟机——设置——安装VMwareTools 桌面会有一个安装包,解压后,执行vmware-install.pl 安装需要等别以为是安 ...

  6. Android 进阶15:HandlerThread 使用场景及源码解析

    眼睛困得要死,但今天的计划不完成又怎么能睡呢?明日复明日,明日何其多啊! 读完本文你将了解: HandlerThread 简介 HandlerThread 源码 HandlerThread 的使用场景 ...

  7. Unity3d 背景、音效 播放 简单demo

    仅实现功能,AudioListener在MainCamera中 using UnityEngine; using System.Collections; using System.Collection ...

  8. DotNet Core Console 程序使用NLog

    参考:https://github.com/NLog/NLog/wiki/Tutorial 步骤: 1. 使用Nuget安装NLog.Extensions.Logging Install-Packag ...

  9. docx转doc时,防止公式被转成图片的解决办法

    编辑社回复需要doc(Word 97-2003)格式的文档,可是将docx(Word 2007+)另存为doc格式时,发现公式被转成了图片.其实,最简单的办法就是,打个电话过去给编辑社:“大爷,拜托您 ...

  10. Python之namedtuple源码分析

    namedtuple()函数根据提供的参数创建一个新类,这个类会有一个类名,一些字段名和一个可选的用于定义类行为的关键字,具体实现如下 namedtuple函数源码 from keyword impo ...