字典 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. 用requests库爬取猫眼电影Top100

    这里需要注意一下,在爬取猫眼电影Top100时,网站设置了反爬虫机制,因此需要在requests库的get方法中添加headers,伪装成浏览器进行爬取 import requests from re ...

  2. java String转Long两种方法区别

    第一种:包装类型:Byte,Integer,Short,Long,Boolean,Character,Float,Double等8种 Long.valueOf("String")返 ...

  3. opensack-mitaka网络性能测试shaker

    一.项目介绍 Shaker项目是由Mirantis发起,专门针对OpenStack网络性能的测试工具.通过模拟不同的网络场景和heat模板,创建虚拟机,并在虚拟机里运行iperf.iperf3.net ...

  4. iOS自动化探索(六)自动化测试框架pytest - fixtures

    Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将 ...

  5. 早上来开启eclipse,谁想代码都不见了,猜想是工作空间换了

    1.试了下网上说的改eclipse配置文件,不好使,连接地址:http://blog.csdn.net/gnail_oug/article/details/53992580 2.然后看了下 eclip ...

  6. LeetCode OJ:Remove Duplicates from Sorted Array II(移除数组中的重复元素II)

    Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...

  7. Python基础学习(第9天)

    第九课:动态类型 1.在Python中,有一类特殊的对象,是专门用来存储数据的,常见的有数字.字符串.数列.字典等.这些对象是存储在内存中的实体,我们并不能直接接触到它们,在程序中接触的是对象名,是指 ...

  8. gethostbyname()函数

    gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件    #include <netdb.h>    #include <sys/socket.h> ...

  9. Matisse,来自知乎的PhotoPicker

    简介 Matisse,是一款由知乎开源的媒体选择器. 在Activity和Fragment中使用 支持JPEG,PNG,GIF的图片选择和MPEG,MP4格式的视频选择.不能同时选择图片和视频 两种主 ...

  10. 不同apk的activity互相调用

    目标:CHFSAsk.apk调用CHFSAdviser.apk中的AppStart和MainActivity两种activity. CHFSAsk.apk:去调用的apk, 包名为com.chfs.a ...