python 数据类型 之 字典
python 3.6.5字典的特性和定义定义:{'key_1':vlaue_1,'key_2':value_2}1.键与值用冒号 : 分开2.项与项 用 , 分开 特性1.可以存放多个值,可以不唯一,可以修改2.key-value 结构3.key必须可hash,且必须唯一,不可变类型4.无序的 字典的创建和常见操作以下是几种:创建字典的操作dic={}dic['add1']='value1'dic['add2']='value2'
dict_name={'yan':'xia','ting':'yu'}dict_name=dict(yan='xia',ting='yu')#{'yan': 'xia', 'ting': 'yu'}# dict_name=dict({'yan':'xia','ting':'yu'})#{'yan': 'xia', 'ting': 'yu'}# dict_name={k+1:v for k,v in enumerate(range(1,10))}#字典推到自#{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} # dict_name={}.fromkeys(['key1','key2'],100)# {'key1': 100, 'key2': 100}#默认值是100# dict_name={}.fromkeys(['key1','key2'],[])#默认值是空list# {'key1': [], 'key2': []}print(dict_name)
#使用zip生成字典(强制类型转换)list_1=[i for i in range(1,5)]list_2=[i for i in range(6,10)]dict_3=zip(list_1,list_2)#type:class 'zip'dic=dict(dict_3)print(dic)#{1: 6, 2: 7, 3: 8, 4: 9}
dict.keys()# 返回包含所有键的列表dict.values()# #返回包含所有值的列表dict.items()# #返回包含所有键-值的元组
dict_list={k:v for k,v in enumerate(range(1,10))}print(dict_list.items())>>:dict_items([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)])
#新增:dic={'yanxia':'tianyu'}dic.setdefault('天','空')#假如字典中不存在键 则将后面的值赋值给键dic['add']='value'dic.update(name='yanxiatingyu')dic.update({'name_2':'yanxitingyu'}) #删除#dic.pop('add')#返回值,并且删除键值对 key-value,键不存在 报错#del dic['add']#dic.clear()#>>:{}删除所有 键-值 dic =空字典。 #修改值dic['add']='飞行'dic.update(name='yanxiatingyu')dic.update({'name_2':'yanxitingyu'})#print(dic) #查看dic['add']dic.get('add',default='这是默认值')#假如add 不存在 就返回 后面default里面的值print(dic.__getitem__('add')) 长度len(dic)
字典的遍历 dic,dic.keys(),dic.values(),dic.items() sample:for k,v in dic.items(): print('%s %s'%(k,v)) D.clear() #移除D中的所有项 D.copy() #返回D的副本 D.fromkeys(seq[,val]) #返回从seq中获得的键和被设置为val的值的字典。可做类方法调用 D.get(key[,default]) #如果D[key]存在,将其返回;否则返回给定的默认值None D.has_key(key) #检查D是否有给定键key D.items() #返回表示D项的(键,值)对列表 D.keys() #返回D键的列表 D.pop(key[,d]) #移除并且返回对应给定键key或给定的默认值D的值 D.popitem() #从D中移除任意一项,并将其作为(键,值)对返回 D.setdefault(key[,default]) #如果D[key]存在则将其返回;否则返回默认值None D.update(other) #将other中的每一项加入到D中。 D.values() #返回D中值的列表
python 2.x
iterkeys()iteritems()itervalues()单纯的取值效率上比keys()items()values()这三种方法效率要高 dic={'name':'this is test'}import time#效率测试
dic={'name':'this is test'}import time#效率测试time_start=time.time()for i in range(0,10000): dic.__getitem__('name')end_start=time.time() time_start1=time.time()for i in range(0, 10000): dic.get('name')end_start1=time.time() time_start2=time.time()for i in range(0, 10000): dic['name']end_start2=time.time()print()print((end_start-time_start))print((end_start1-time_start1))print((end_start2-time_start2))1 # 0.0020000934600830082 # 0.0030000209808349613 # 0.0009999275207519531测试了10次第三种取值方法基本上时间都是最小的第2种往往是最大的,第3种次之不过笔者有点懵逼,__getitem__()不是底层实现吗?为什么反而没有dict['key_name']取值速度快呢?dic['key_name']背后就是dic.__getitem__() 仿 编译型语言switch语句 多分支选择
def taskForSunday(): print("今天休息")def taskForRest(): print("今天休息")def taskForChinese(): print("今天上语文课")def taskForMath(): print("今天上数学课")def taskForEnglish(): print("今天上英语课")def taskForDefault(): print("输入错误啦。。。。")switch = {"Sunday": taskForRest, "Monday": taskForChinese, "Tuesday": taskForMath, "Wednesday": taskForEnglish, "Tursday": taskForEnglish, "Friday": taskForEnglish, "Saturday": taskForRest } day='sfds'switch.get(day,taskForDefault)()
class Switch: switch = None @classmethod def switch(cls, day): switchDic = {"Sunday": cls.casetaskForRest, "Monday": cls.casetaskForChinese, "Tuesday": cls.casetaskForMath, "Wednesday": cls.casetaskForEnglish, "Tursday": cls.casetaskForEnglish, "Friday": cls.casetaskForEnglish, "Saturday": cls.casetaskForRest } cls.switch = switchDic.get(day, cls.casetaskForDefault)() return cls.switch @staticmethod def casetaskForSunday(): print("今天休息") @staticmethod def casetaskForRest(): print("今天休息") @staticmethod def casetaskForChinese(): print("今天上语文课") @staticmethod def casetaskForMath(): print("今天上数学课") @staticmethod def casetaskForEnglish(): print("今天上英语课") @staticmethod def casetaskForDefault(): print("输入错误啦。。。。") Switch.switch('Sunday')
python 数据类型 之 字典的更多相关文章
- python数据类型:字典Dictionary
python数据类型:字典Dictionary 字典是一种可变容器模型,可以存储任意类型对象 键是唯一的,但是值不需要唯一 值可以取任何数据类型,但是键必须是不可变的,如字符串,数字,元组 创建字典: ...
- Python数据类型-6 字典
字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...
- Python数据类型(字典和集合)
1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个 ...
- python 数据类型三 (字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- Python数据类型-04.字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据 ------------ 完美的分割线 ------------- 1.字典引入 # 为何还要用字典?存放一个人的信 ...
- Python数据类型(字典)
文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 字典(Dictionary) 字典 ...
- python数据类型之字典操作
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由key和value成对组成.基本语法如下: infos = {"name&q ...
- Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之字典类型(dict)
字典!在Python中字典是另一种可变容器模型,可以存储任意类型的对象.是Python存储数据类型的最高级(maybe). 特点:1. 字典的存储方式和其他类型数据略有不同,是通过键(key)和值(v ...
- Python学习(六) Python数据类型:字典(重要)
字典dict: 字典其实就相当于java里面的Map,用来存储键值对的.其中存储的数据时无序的. 假如有这样的数据: t1=['name','age','sex'] t2=['tom',30,'mal ...
随机推荐
- JQUERY 简单易用的提示框插件
业务开发过程中,为了避免用户的误操作,提示框是必要的,于是琢磨出了下面这个使用,方便的提示框 还要引入遮罩层的样式如下: /*弹出层*/.input{height: 32px;border: 1px ...
- lucene solr
理解 lucene 是一个全文搜索的引擎 solr是全文搜索的web实现 --------------------. java.lang.UnsupportedClassVersionError: ...
- 常用dos命令和windows系统快捷键
一.dos命令[重难点]1.OS——操作系统2.如何进入dos窗口?——P111 开始——程序——运行——输入cmd3.常用的dos操作命令 3.1 返回上一级 cd.. 3.2 返回到根目录 cd\ ...
- Visual studio 2019 preview & C# 8 initial experience
Visual studio 2019 preview & C# 8 initial experience using System; using static System.Con ...
- CFDA
cfda数据抓取 1.网站数据是加密的,需要浏览器进行数据解析 2.网址url有js加密 3.PhantomJS无法解析数据, chrome无法获取数据,所有最终选择用Firefox浏览器 impor ...
- kafka清理
由于项目原因,最近经常碰到Kafka消息队列拥堵的情况.碰到这种情况为了不影响在线系统的正常使用,需要大家手动的清理Kafka Log.但是清理Kafka Log又不能单纯的去删除中间环节产生的日志, ...
- idea gradle卡主问题
http://services.gradle.org/distributions/ 首先下载 all 版本 ,解压 ,再d盘, 并保留zip 文件 ,新建环境变量 GRADLE_HOME 指向 ...
- linux centos 访问根目录 not accessable
chmod 777 root 即可 或 chmod a+x root https://blog.csdn.net/CSDN_GYG/article/details/73276310
- burpsuite的使用(一)
安装证书: 打开burpsuite,设置好代理.端口8080,但是打开https的网站却因为证书问题无法访问. 这需要我们为浏览器手动安装CA证书, 安装CA证书有两种方式: 1. 在burpsuit ...
- 点击空白隐藏div
window.onload = function(){ $(document).click(function(e){ $("#loginWrap").css('display',' ...