qingqing0803

字典

1.字典定义

 字典是由一对花括号括起来的一组“键值对”,每个键值对就是字典的一个元素,元素在字典中是无序的

dic={key1:value1,key2:value2}

字典中键一般是唯一的,如果重复,最后一个键值对会替换掉前边的。值可以是任何类型,但键必须是类型一致的,且不可变。

字典能够存储大量的数据,而且时关系型数据,查询速度快

字典的键是不可变数据类型,值可以设置任意数据类型

数据类型分类

可变数据类型:list,dict,set(不可哈希)

不可变数据类型:int,str,bool,tuple(可哈希)

按容器分类:

容器类(可承载各种数据类型):list,tuple,dict

2.字典的创建

d=dict{}  #创建的空字典

d={键:值}

3.字典的操作

dic[键]=值  #字典中有则覆盖,无则添加

dic.setdefault(键,值) #无则添加,有则什么都不做,即保持原来的

dic.pop(键) #删除键值对,有返回值

dic.pop(键,None) #当没有要删除的键值对时,不会报错

dic.clear() #清空字典

del dic  删除字典

del dic[键]

dic[键]=值

针对两个字典的改

dic={"name":"jin","age":18,"sex":"male"}

dic2={"name":"alex","weight":75}

dic2.update(dic) #用dic的键值对覆盖并添加到dic2中

dic[键]

dic.get(键) #默认返回None

其他方法:keys,values,item

dic.keys() #把字典所有的键放到类似列表的容器中,可循环

dic.values()   #把字典所有的值放到类似列表的容器中,可循环

dic.items() #把字典所有的键值对以元组的形式放到类似列表的容器中,可循环

dict的特殊类型转换成list

list(dict.keys())

分别赋值

 a,b=3,2

print(a,b) #结果为a=3,b=2

字典的嵌套

dic={'name_list':['张三',‘lisi’,'隔壁王叔叔'],

dic2:{'name':'太白','age':12},

}

给列表追加个元素:

4.字典的内置函数

cmp(dic1,dic2)   #比较两个字典

len(dic)              #求字典的长度

str(dic)              #输出字典可打印的字符串表示

5.字典的内置方法

dic.clear()  #删除字典中所有的元素

dic.copy()  #字典浅copy

dic.fromkeys(seq[,val]) #创建一个新字典,以序列seq中元素做字典的键,val为字典的键对应的初始值

dic.get(key,default=None)  #返回指定的键对应的值,如果键不在字典中,则返回none

dic.has_key(key)  #如果字典中存有该键,则返回true,否则返回false

dic.items()  #以列表返回可遍历的键值元组数组

dic.keys()  #以列表返回一个字典所有的键

dic.setdefault(key,default=value)  #键不存在,则将添加键,并设置值为value

dic.update(dic2)  #把字典dic2中的值添加到dic

dic.values()        #以列表形式返回字典中的值

pop(key[,default])  #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值

popitem()  #随机返回并删除字典中的一对键和值

 fromkeys的用法

dic=dic.fromkeys('abc','alex')

print(dic)  #结果为:{‘a’:'alex','b':'alex','c':'alex'}

dic=dic.fromkeys([1,2,3],[])

print(dic) #打印出的结果为:{1:[],2:[],3:[]}

dic[1]='老男孩'

print(dic)  打印出来的结果为:{1:[‘老男孩’],2:[‘老男孩’],3:[‘老男孩’]} #说明dic.fromkeys 设置一个字典或者列表,改变一个,其他也会改变

posted on 2019-01-02 16:14  qingqing0803  阅读(143)  评论(0)    收藏  举报

导航