Python学习日记:day5-------dict字典
#字典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}
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'}
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120} dic1.pop('二哥','none') print(dic1.pop('二哥','none')) print(dic1)
dic1 ={'age': 18, 'name': 'jin', 'sex': 'male', 'k': 'v','weirht':120} dic1_pop1 = dic1.popitem() # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回 print(dic1_pop1) #('age', 18)
dic_clear = dic.clear() # 清空字典 print(dic,dic_clear) # {} None
del dic1["name"] # 没有返回值。 print(dic1)
(3)改
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]
v1 =dic1['name']#找出了对应的值 print(v1) #缺点如果没有对应的值会报错。
5.get
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字典的更多相关文章
- Python 学习日记(第三周)
知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- 【python学习笔记】4.字典:当索引不好用时
[python学习笔记]4.字典:当索引不好用时 字典是python中唯一内建的map类型 创建: key可以为任何不可改变的类型,包括内置类型,或者元组,字符串 通过大括号: phonebook={ ...
- Python学习日记 --day2
Python学习日记 --day2 1.格式化输出:% s d (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...
- python学习日记(基础数据类型及其方法01)
数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...
- Python学习日记(三) 学习使用dict
数据按类型可划分为: 不可变数据类型(可哈希):元祖.string.int.bool 可变数据类型(不可哈希):dict.list 集合本身是可变数据类型,元素是不可变数据类型 字典中的key必须是不 ...
- Python学习日记day3:数据类型
1.数据类型int :如1.2.4等, 用于计算 bool: True , False ,用户判断 str: 储存少量数据,进行操作.如:'fdasklfjfladfl','而而噩噩','1234' ...
- Python学习日记(一):拜见小主——Python
近日学习Python,特将学习过程及一点心得记录于此. 由于之前做过一个Java爬虫的项目,虽然很长时间没有碰过爬虫,但是小郭同学有一颗不死的爬虫心,哈哈.最近在互联网上找一些电影的时候,有很多电影只 ...
- Python基础数据类型(五) dict字典
字典dict{} 字典数字自动排序 enumerate 枚举 for i,k in enumerate(dic,1) #第二个参数默认不写就是0 ---枚举 print(i,k) dict,以{}来表 ...
随机推荐
- Python Base64 编码
0x00 Base64简介 0x01 常用场景举例 0x02 编.解码流程 0x03 Python中Base64编码与解码 0x00 Base64简介 我们知道在计算机中任何数据都是按ascii码存储 ...
- PL/SQL 游标 (实验七)
PL/SQL 游标 emp.dept 目标表结构及数据 要求 基于部门表建立游标dept_cursor1,使用记录变量接收游标数据,输出部门表信息: 显示格式: 部 门 号: XXX 部门名称: XX ...
- css实现六边形图片(最简单易懂方法实现高逼格图片展示)
不说别的,先上效果: 用简单的div配合伪元素,即可‘画出’这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边形,再利用背景图层叠,形成视觉上的一张整图.下面咱们一步一步来实现. ...
- webuploader 实现图片批量上传
1.导入资源 2.JSP代码 <div class="page-container"> <div class="row cl"> < ...
- Servlet之过滤器(Filter)和监听器(Listener)
过滤器 过滤器是一个java组件,可以拦截发送至某个servelet,jsp页面或静态页面的请求,可以在响应发送到客户之前进行拦截 工作原理: 过滤器类必须实现 Filter 接口,包含的方法如下: ...
- windows 下更新 npm 和 node
原文链接 公司的新项目要启动了,需要使用 Angular 4.0,并且使用 webpack 工具进行打包.所以就需要安装 node.node 的安装很简单,在 node 的官网 nodejs.org ...
- 【java提高】---HashMap解析(一)
HashMap解析(一) 平时一直再用hashmap并没有稍微深入的去了解它,自己花点时间想往里面在深入一点,发现它比arraylist难理解很多,好多东西目前还不太能理解等以后自己知识更加丰富在过来 ...
- 开源:Sagit.Framework For IOS 开发框架
一:创造Sagit开发框架的起因: 记得IT连创业刚进行时,招了个IOS的女生做开发,然后: ----------女生的事故就此开始了----------- 1:面试时候:有作品,态度也不错,感觉应该 ...
- Nginx均衡TCP协议服务器案例
Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不 ...
- javascript设计模式——发布订阅模式
前面的话 发布—订阅模式又叫观察者模式,它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知.在javascript开发中,一般用事件模型来替代传统的发布—订阅模 ...