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 ...
随机推荐
- js对象和jquery对象互相转换
javascript对象转成jquery对象 jquery对象转成javascript对象
- asp.net4.0
asp.net4.0安装路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
- 吴裕雄 05-mysql删除数据库
drop database <数据库名>; 例如删除名为 RUNOOB 的数据库:drop database RUNOOB; 使用 mysqladmin 删除数据库你也可以使用 mysql ...
- 编程四剑客sed-2019.2.20
sed [-Options] [‘Commands’] filename; sed工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改,需要加-i参数即对文件彻底修 ...
- vue set
Vue 可以通过数组变异的方法可以控制数组的增减,却不能更改数组及对象,vue可以通过set方法改变数组的长度,改变某项的值,在组件中可以使用$set方法改变数组长度和某项的值 调用方法:Vue.se ...
- web前端面试题整理
1.在浏览器解析原理?2.ES5 的Object.defineProperties3.css3新属性的优势?4.vue 的computed和method的区别5.html5 的十个新特性6.web s ...
- js-for (var in )遍历顺序乱了
存放的key 为如下: “01”,“02”,“03”,········“10”,“11”,“12” 遍历之后“10”,“11”,“12”, “01”,“02”,“03”,········ 解决办法:把 ...
- javascript中所有函数的参数都是按值传递的
[javascript中所有函数的参数都是按值传递的] 参考:http://www.jb51.net/article/89297.htm
- BOM 对象--location、navigator、screen、history
1.location 对象 location提供了与当前窗口中加载的文档有关的信息,还有一些导航功能.需要注意的是,window.location 和 document.location 引用的是同一 ...
- scrapy 是指user_agent
1.倒入random模块 2.在settings文件中添加useragent列表 MY_USER_AGENT = [ "Mozilla/4.0 (compatible; MSIE 6.0; ...