Python: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:dict字典的更多相关文章
- [Python] dict字典的浅复制与深复制
Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...
- python dict 字典
字典是通过hash表的原理实现的,每个元素都是一个键值对,通过元素的键计算出一个唯一的哈希值,这个hash值决定了元素的地址,因此为了保证元素地址不一样,必须保证每个元素的键和对应的hash值是完全不 ...
- Python dict字典方法完全攻略(全)
我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...
- Python - dict 字典常见方法
字典详解 https://www.cnblogs.com/poloyy/p/15083781.html get(key) 作用 指定键,获取对应值 两种传参 dict.get(key):键存在则返回对 ...
- Python - dict 字典的多种遍历方式
前置知识 for 循环详解:https://www.cnblogs.com/poloyy/p/15087053.html 使用 for key in dict 遍历字典 可以使用 for key in ...
- Python - DICT 字典排序 - OrderedDict
官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...
- python dict字典和set集合用法
创建字典:键 值 key value c = {'张三':59, '李四':60, '王五':100} #查 print(c['张三']) #打印张三的成绩 #改 c['张三'] = 60 # ...
- python dict字典添加元素
已存在的字典进行赋值操作 可为该字典添加新元素例子:a = {‘age’: 23, ‘name’: ‘lala}a[school] = ‘nanhaizhongxue’print a>>& ...
- python dict字典常用操作
字典的特性:key唯一无序 '''特性:key唯一:无序''' info = { 'stu1101': "安徽", 'stu1102': "北京", 'stu1 ...
- Python dict 字典 keys和values对换
原字典: d1 = { 'en':'英语', 'cn':'中文', 'fr':'法语', 'jp':'日语' } 经过相互对换: d1_inverse = {values:keys for keys, ...
随机推荐
- DataGuard具体搭建环节
在上一篇blog中,详细介绍DataGuard实现的原理,本篇介绍DataGuard的具体搭建过程. 主库打开日志,并强制force logging SQL>shutdown immediate ...
- 网页引用Font Awesome图标
问题:最近在IIS上部署web项目的时候,发现浏览器总是报找不到woff.woff2字体的错误.导致浏览器加载字体报404错误,白白消耗了100-200毫秒的加载时间. 原因:因为服务器IIS不认SV ...
- Hadoop Ecosystem related ports
本文总结了Hadoop生态系统中各个组件使用的端口,包括了HDFS,Map Reduce,HBase,Hive,Spark,WebHCat,Impala,Alluxio,Sqoop等,后续会持续更新. ...
- IDEA 导入cordova3.5工程目录注意事项
IDEA 导入cordova3.5工程目录注意事项 1 eclipse很不稳定,有很多小问题.平时我自己用idea,但是当用cordova3.5创建好工程目录是,用eclipse导入时没有问题的.但是 ...
- unity规范
Unity VS脚本自动添加头部注释 http://blog.csdn.net/yupu56/article/details/52326930 Unity3D C#代码注释规范及文档生成 http:/ ...
- Python 集合(set)类型的操作——并交差
介绍 python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并.交.差.对称差等. sets 支持 x in set. len(set).和 for x in ...
- K&R C风格函数
前些天在看getopt源码, 一种前所未见的函数定义方法 int getopt(nargc, nargv, ostr) int nargc; char * const nargv[]; const c ...
- 深入理解JavaScript系列(7):S.O.L.I.D五大原则之开闭原则OCP
前言 本章我们要讲解的是S.O.L.I.D五大原则JavaScript语言实现的第2篇,开闭原则OCP(The Open/Closed Principle ). 开闭原则的描述是: Software ...
- 分支结构if……else
语法: if(条件) 语句或语句块1 end else begin 语句或者语句块2 end 特点: . else并不一定是必须的. . 如否条件为真,将执行语句和语句块1,条件为假时执行语句或语句块 ...
- 一个简单问题引发对IEnumerable和IQueryable的思考
问题概述: 首先看下图,有客户表和客户负责人表关系是多对多,访问数据库使用的是EF所以这里我们开启了延迟加载,需求就是将每个客户的所有负责人逗号拼接显示在负责人这一栏位, 对你没看错需求就是这么 ...