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, ...
随机推荐
- PIE SDK 坐标系创建、定义、对比
1. 坐标系创建 1.1 从WKT字符串导入空间参考 ISpatialReference接口是一个任何空间参考对象都实现的接口,它包含了所有空间参考对象都公有的方法和属性,如获得空间参考对 ...
- NFS 网络文件系统
1, NFS存储服务概念介绍 NFS是Network File System的缩写,中文意思是网络文件系统, 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录 ...
- 97 条 Linux 运维工程师常用命令总结[转]
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...
- 实现类似tail -f file功能
python版本py3 tail -f file是打印最后10行,然后跟踪文件追加的内容打印出来. python3 以为本方式打开的话,不能回退(f.seek(-1,1)),所有以'rb'方式打开文件 ...
- 东拼西凑 vim配置-更新
"============================================================= "========================== ...
- B站视频下载(VideoHelper)
继续上次的知乎爬虫, 这次开始了哔哩哔哩的爬虫实践: 首先介绍下如何下载吧: VideoHelper 里面有三种方式下载b站视频. 同样的流程, 还是先抓包,分析参数,寻找参数(包括之前的请求包和页面 ...
- javascript遍历表
定义表结构 1. 通过id遍历 <html> <body> <table id="tb" border="1"> <t ...
- model操作涉及的所有字段(API)
一旦 数据模型 创建完毕, 自然会有存取数据的需要.本文档介绍了由 models 衍生而来的数据库抽象API,及如何创建,得到及更新对象. 贯穿本参考, 我们都会引用下面的民意测验(Poll)应用程序 ...
- 如何恢复sqlserver误删除的数据(摘)
一.借助第三方工具 1.sqlserver2005: Log Explorer http://www.cnblogs.com/whitney/archive/2008/08/22/1273879.ht ...
- Linux 启动SVN服务
#使用默认端口3690启动svn服务svnserve -d -r /home/svndata # 如果出现#svnserve: Can't bind server socket: Address al ...