#字典dict-------》唯一的映射类型

1、数据类型的划分

数据类型划分为可变数据类型和不可变数据类型。

不可变数据类型:tupe(元组)、bool、int、str           可哈希

可变数据类型:list、dict、set(集合)                 不可哈希

dict(key,value)中: key必须是不可变数据类型

          value可以是任意数据类型

2、dict的优点及特点

优点:用二分查找去查询。存储大量的关系型数据

特点:无序(3.5版本及之前的版本特点)

3、dict类型的增删改查

dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v'}

(1)增

1.dic['name'] = 值

    

dic1['high'] =185
print(dic1)

#结果为:{'sex': 'male', 'age': 18, 'name': 'jin', 'k': 'v', 'high': 185}

2、#setdefault
dic1.setdefault('weirht')#不写value的话,会默认为none
print(dic1)

#结果为:

{'sex': 'male', 'age': 18, 'k': 'v', 'weirht': None, 'name': 'jin'}

dic1.setdefault('weirht',150)
print(dic1)

#结果为:

{'weirht': 150, 'sex': 'male', 'name': 'jin', 'k': 'v', 'age': 18}

####如果增加的时候原来的dic有这个键值对,键值那么不做任何改变,没有才添加####

dic1内的元素会随机排列。

dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1.setdefault('weirht',150)
print(dic1)
#{'k': 'v', 'weirht': 120, 'name': 'jin', 'sex': 'male', 'age': 18}

(2)删

1.pop

dic1.pop('age')
print(dic1)

#结果为:

{'k': 'v', 'weirht': 120, 'name': 'jin', 'sex': 'male'}

#pop在dict中有返回值,按键去删除
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1.pop('二哥','none')
print(dic1.pop('二哥','none'))
print(dic1)
#dic1.pop('二哥','没有此键/none') 可以自定义返回值。
#可设置返回值,按照键去删除,如果键在字典里没有,会报错。
2.popitem会随机删除。有返回值,返回的是元祖,删除的键值。
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120}
dic1_pop1 = dic1.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
print(dic1_pop1)  #('age', 18)
 
3.clear
清空字典
dic_clear = dic.clear()  # 清空字典
print(dic,dic_clear)  # {} None
4.del
可以删除键值对,也可删除整个字典。没有返回值。如果没有会报错。
del dic1["name"]  # 没有返回值。
print(dic1)

(3)改

1、dic1['high'] =185,直接覆盖也叫做改
2、update
将一个字典中另一个字典没有的内容,覆盖添加到另一个字典中。
dic = {'name':'jin','age':18,'sex':'male'}
dic2 = {'name':'alex','weirht':75}
dic2.update(dic)
print(dic)
print(dic2)

dic:{'sex': 'male', 'name': 'jin', 'age': 18}
dic2:{'weirht': 75, 'sex': 'male', 'name': 'jin', 'age': 18}

(4)查

1.

print(dic1.keys())      什么也不写默认打印键
print(dic1.values())      打印值
print(dic1.items())     打印键值对
2.for                           结果:
for i in dic2:                                        weirht
print(i)                                         name

3.分别赋值

a,b = 1,2
print(a,b)
#a =1
  b =2

3.1  b =2用一行代码互换a,b的值(面试题)

a,b = 1,2

a,b = b ,a
print(a,b)

#a,b =[1,2]
#print(a,b)----->[1,2]

3.2

a,b = [1,2],[3,4]
print(a,b)
#------>[1,2],[3,4]
4.dic['name']
 
v1 =dic1['name']#找出了对应的值
print(v1)
#缺点如果没有对应的值会报错。

5.get

dic1.get('name1')
print(dic.get('name1'))#如果没有对应的值会默认返回none。
可以自定义设置返回值。
dic = {'name':'jin','age':18,'sex':'male'}
value2 = dic.get("djffdsafg","没有返回值")  # 没有,可以返回设定的返回值
print(value2)

(5)嵌套

dic={
'name':['alex','wusir','taibai'],
'py9':{
',
'learn_money':19800,
'address':'CBD'
}
'age':21
}
dic['age'] = 56
dic['name'].append('')

Python学习日记:day5-------dict字典的更多相关文章

  1. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  2. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  3. 【python学习笔记】4.字典:当索引不好用时

    [python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...

  4. Python学习日记 --day2

    Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...

  5. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  6. Python学习日记(三) 学习使用dict

    数据按类型可划分为: 不可变数据类型(可哈希):元祖.string.int.bool 可变数据类型(不可哈希):dict.list 集合本身是可变数据类型,元素是不可变数据类型 字典中的key必须是不 ...

  7. Python学习日记day3:数据类型

    1.数据类型int :如1.2.4等, 用于计算 bool: True , False ,用户判断 str: 储存少量数据,进行操作.如:'fdasklfjfladfl','而而噩噩','1234' ...

  8. Python学习日记(一):拜见小主——Python

    近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只 ...

  9. Python基础数据类型(五) dict字典

    字典dict{} 字典数字自动排序 enumerate 枚举 for i,k in enumerate(dic,1) #第二个参数默认不写就是0 ---枚举 print(i,k) dict,以{}来表 ...

随机推荐

  1. Python Base64 编码

    0x00 Base64简介 0x01 常用场景举例 0x02 编.解码流程 0x03 Python中Base64编码与解码 0x00 Base64简介 我们知道在计算机中任何数据都是按ascii码存储 ...

  2. PL/SQL 游标 (实验七)

    PL/SQL 游标 emp.dept 目标表结构及数据 要求 基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息: 显示格式: 部 门 号: XXX 部门名称: XX ...

  3. css实现六边形图片(最简单易懂方法实现高逼格图片展示)

    不说别的,先上效果: 用简单的div配合伪元素,即可‘画出’这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边形,再利用背景图层叠,形成视觉上的一张整图.下面咱们一步一步来实现. ...

  4. webuploader 实现图片批量上传

    1.导入资源 2.JSP代码 <div class="page-container"> <div class="row cl"> < ...

  5. Servlet之过滤器(Filter)和监听器(Listener)

    过滤器 过滤器是一个java组件,可以拦截发送至某个servelet,jsp页面或静态页面的请求,可以在响应发送到客户之前进行拦截 工作原理: 过滤器类必须实现 Filter 接口,包含的方法如下: ...

  6. windows 下更新 npm 和 node

    原文链接 公司的新项目要启动了,需要使用 Angular 4.0,并且使用 webpack 工具进行打包.所以就需要安装 node.node 的安装很简单,在 node 的官网 nodejs.org  ...

  7. 【java提高】---HashMap解析(一)

    HashMap解析(一) 平时一直再用hashmap并没有稍微深入的去了解它,自己花点时间想往里面在深入一点,发现它比arraylist难理解很多,好多东西目前还不太能理解等以后自己知识更加丰富在过来 ...

  8. 开源:Sagit.Framework For IOS 开发框架

    一:创造Sagit开发框架的起因: 记得IT连创业刚进行时,招了个IOS的女生做开发,然后: ----------女生的事故就此开始了----------- 1:面试时候:有作品,态度也不错,感觉应该 ...

  9. Nginx均衡TCP协议服务器案例

    Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不 ...

  10. javascript设计模式——发布订阅模式

    前面的话 发布—订阅模式又叫观察者模式,它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知.在javascript开发中,一般用事件模型来替代传统的发布—订阅模 ...