python基础类型—字典
字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。
字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
可变数据类型:列表list,字典dict 又叫不可哈希
不可变数据类型: 元祖,bool值,数字int,字符型str 本身不可变,又叫可哈希
key 键,必须是不可变类型,可哈希
value 值,任意数据类型
创建空字典使用 { }
字典dict优点:
1,用二分法查询,查询速度快
2,储存大量的关系型数据
字典dick特点:
字典dict是无序的。(3.5及之前的字典dict是无序的)
简写为dic
dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
print(dic) 结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123}
增,两种方法(注意与列表list区别)
直接加,如果没有对应键值,则直接加在后面。如果有对应键值,则进行覆盖。
dic1 ={'name':'xiaojun'}
dic1['height'] = 180
print(dic1)
dic.setdefault('') 形式,有对应键值,则不做任何修改。没有对应键值,后面默认加None
dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
dic.setdefault('weighe') print(dic)
dic.setdefault('weighe',180) 另一种形式
dic = {
'name':'xiaoming',
'age':18,
'num':[1,2,3,'alex'],
's1':{'xiao':'han','gh':[1,2,3,4]},
'qq':123
}
dic.setdefault('weighe',180) print(dic)
结果 {'name': 'xiaoming', 'age': 18, 'num': [1, 2, 3, 'alex'], 's1': {'xiao': 'han', 'gh': [1, 2, 3, 4]}, 'qq': 123, 'weighe': 180}
删,
dic.pop(‘’)直接删
dic = {'name':'xiaoming','age':18}
dic.pop('age')
print(dic)
有返回值,返回被删除的键值
dic = {'name':'xiaoming','age':18}
s = dic.pop('age')
print(s)
结果18
可设置返回值,如果没有对应的被删键值,返回自己设定的值,就是下面的‘不错’
dic = {'name':'xiaoming','age':18}
s = dic.pop('aa','不错') #如果aa变成name,则返回小明
print(s)
结果 不错
dic.popltem()形式,随机删除一个,3.6版本默认删除最后一个 dic = {'aa':'xiaoming','age':18}
dic.popitem()
print(dic) 结果 {'aa': 'xiaoming'}
dic = {'aa':'xiaoming','age':18} #这种,有返回值
print(dic.popitem())
结果 ('age', 18)
清空列表
dic = {'aa':'xiaoming','age':18}
dic.clear() print(dic) 结果 {}
改
直接改
dic = {'name':'xiaoming','age':18}
dic['age'] = 16
print(dic)
dic1.update(dic)覆盖增加,把dic覆盖增加到dic1中,
dic = {'name':'xiaoming','age':18}
dic1 ={'name':'xiaojun','height':180}
dic1.update(dic)
print(dic1)
dic和dic1中对应的键,则用dic的键值覆盖dic1的,dic没有与dic1中对应的减,则直接加入dic1中,dic1中多的键值,则直接保留
结果{'name': 'xiaoming', 'height': 180, 'age': 18}
查
dic['直接查']直接查,没有会报错
dic = {'name':'xiaoming','age':18}
print(dic["name"])
dic.get('high','设置返回的值‘)
dic = {'name':'xiaoming','age':18}
print(dic.get("high","默认返回值") ) # 没有可以返回设定的返回值
#print(dic.get('high')) 默认返回None
只打印键
dic = {'name':'xiaoming','age':18} = dic = {'name':'xiaoming','age';18}
for i in dic: = for i in dic.keys():
print(i) = print(i) 结果 name 结果 name
age age
只打印值
dic = {'name':'xiaoming','age':18}
for i in dic.values():
print(i) 结果 xiaoming
18
a = 1
b = 2
a,b = b,a
print(a,b)
items 同时打印keys 和 valuces
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
for i in dic.items():
print(i)
python基础类型—字典的更多相关文章
- python基础类型(字典:dict)
字典的介绍: 字典(dict)Python中唯一的一个映射类型.他是以{}括起来的键值对组成,在dict中key是唯一的.在保存的时候,根据key来计算出一个内存地址,然后将key-value保存到这 ...
- python基础之字典dict和集合set
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7043642.html python基础之字典dict和集合set 字典dic ...
- Python基础数据类型-字典(dict)
Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...
- python基础之字典、集合
一.字典(dictionary) 作用:存多个值,key-value存取,取值速度快 定义:key必须是不可变类型,value可以是任意类型 字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分 ...
- Python基础知识---字典
现在在实习期间,好久没用Python了,今天在做Java项目时用的HashMap让我联想到了Python中的字典,就写一些Python字典的知识吧,复习复习. 字典: key --> valu ...
- python基础类型,字符串
python基本类型小结 # str,可以用索引取值,但是不能通过索引改变值, # a = "123" a[0]=10,直接TypeError因为字符串是不可变类型 # list, ...
- 5、Python 基础类型 -- Dictionary 字典类型
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d ...
- python基础5 字典
一.字典 字典是python的基础数据类型之一:字典可以存储大量的数据,关系型数据. 同样他也是python中唯一的映射类的数据类型. 数据类型的分类: 可变的(不可哈希)数据类型:list,dict ...
- python基础_字典_列表_元组考试_day4
1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...
随机推荐
- webloigc 控制台修改登录密码
- SeaweedFS的配置使用
SeaweedFS是一个简单并且高度可扩展的分布式文件系统,可以存储数十亿的文件并且快速获得文件,特别适合于有效处理小文件,这里我们简称为weed,weed的主节点不管理文件元数据而是仅管理文件卷,这 ...
- AS使用lombok注解报错:Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain annotation processor.
Rebuild时报错信息如下所示: Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation process ...
- 【ASP.NET Core】EF Core - “影子属性”
有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周 ...
- 每天一个linux命令(12):more命令
1.命令简介 more (more) 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比,方便逐页阅读(file perusal filter fo ...
- TRAC-IK机器人运动学求解器
TRAC-IK和Orocos KDL类似,也是一种基于数值解的机器人运动学求解器,但是在算法层面上进行了很多改进(Specifically, KDL’s convergence algorithms ...
- MySQL在INSERT IGNORE未新增记录时避免AUTO_INCREMENT自增
在MySQL5.7中做INSERT IGNORE时发现, 即使INSERT未成功执行, 表的自增主键却自动加1了, 在某些情况下需要避免这种行为. 需要修改的变量是 innodb_autoinc_lo ...
- 20151224今天发现到的两篇关于CSS架构、可复用可维护CSS和CSS学习提升能有改变思想观念意识的文章 分别是CSS架构目标和说说CSS学习中的瓶颈
多讲一个,CSS全称是什么?CSS全称为Cascading Style Sheets,中文翻译为“层叠样式表”,简称CSS样式表又被我们称为CSS样式,CSS样式又被作为一种能制作出各种样式网页的技术 ...
- Android 读写权限,已经授权情况下,仍然(Permission denied)
首次安装APP,获取读写权限以后, 当读取文件时候,仍然会遇见(Permission denied)错误,解决方案是杀掉APP,重新打开APP即可. 应该属于部分版本系统的bug,直到APP所有的pr ...
- Unity应用架构设计(2)——使用中介者模式解耦ViewModel之间通信
当你开发一个客户端应用程序的时候,往往一个单页会包含很多子模块,在不同的平台下,这些子模块又被叫成子View(视图),或者子Component(组件).越是复杂的页面,被切割出来的子模块就越多,子模块 ...