Python 基础第五天

主要内容:

1.字典的介绍

2.字典的增删改查

3.字典的嵌套

 

1.介绍

dic字典是python中唯一的映射类型.key-value

用途:储存大量的数据,而是关系型数据,查询速度快

dic = {

#  key:value

  'name':'老男孩',
  'age':17,
  'name_list':[杰哥 民歌 花心哥 狗友 芳芳 恒富 ],
  1:True.
  .....

}

值可以对应任意类型,键不一定对应任意类型

数据类型分类:
可变数据类型(不可哈希):list,dict,set。
不可变数据类型(可哈希):int,bool,str,tuple.
字典的键:不可变数据类型。
字典的值:任意数据类型。
容器类型:
容器类(承载各种数据类型):list,tuple,dict。.
字典的键是唯一的。

字典的顺序:

3.5之前,字典是无序的。
3.6开始,字典创建的时候,按照一定的顺序插入的数值,看起来是有序的。

字典的增删改查

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

1.增

第一种:有则覆盖,无则添加

dic['hobby'] = 'girl'

print(dic)

dic['name'] = 'alex'

print(dic)

第二种:setdefault 无则添加,有则不变

dic.setdefault('键名','值')

dic.setdefault('hobby') ==> 结果为None. 字典值的位置

dic.setdefault('hobby','girl')===>结果:'hobby':'girl'

dic.setdefault('name','ritian') ===>结果还是之前的

 

*删

pop  有返回值

#删除存在的数据,默认没有返回值,添加也不会显示

print(dic.pop('age'))  

print(dic)

#删除不存在的key,报错

dic.pop('hobby')

#删除不存在的key,添加返回值的时候,会显示当前的字典,不报错.

li = dic.pop('age','没有数据')
print(li) #显示添加的返回值,'没有数据'
print(dic) #显示现在的字典  没有报错

 

*clear 清空字典

dic.clear() 

 

*del 

1.删除字典

del dic 

2.删除字典的键

del dic['name']

printe(dic)

3.删除字典中不存在的键,报错

del dic['name_list']

printe(dic)

 

*popitem  随机删除,有返回值

l1 = dic.popitem()  3.6之前版本可以实现,3.6版本测试后,没有这个现象.
print(l1) #查看返回值(删除的数据)
print(dic)

 

*第一种情况

dic['name'] = '太白'

printe(dic)

 

*第二种,两个字典的改 update

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

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

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

print(dic2)

 

*1.通过键查找

print(dic['name'])

print(dic['name1']) #没有此键,报错

 

*2.get()

print(dic.get('name'))

print(dic.get('name1'))  # 默认返回None

print(dic.get('name1','没有此键值对'))  #返回值为填入的数据 '没有此键值对'

 

*3.其他方法

key()  values()  items()

key() #把dic中所有的键放在一个列表里

values()#把dic中所有的值放在一个列表里

items()#把dic中每一对的键值放在元组里,然后在把元组放在一个列表里

*可以通过上述方法,把dic--->list 

print(list(dic.keys()))

 

print(dic.keys(),type(dic.keys())) #查看此字典内的所有键,并查看键的类型

结果:dict_keys(['name_list', 'dic2', 'name', 'hobby']) <class 'dict_keys'>

例:

for i in dic.keys():
print(i)

for i in dic:
print(i)

两个得到的结果相同,都是遍历dic中key值

print(dic.values())  #获取字典中的值

for i in dic.values():

 print(i)

 

print(dic.items()) #获取键值对

 

分别赋值的概念,即同时创建两个变量进行赋值

例1

a,b = 2,3

print(a,b)

例2

print(dic.items())
for k,v in dic.items():
  print(k,v)

 

 

 

 

 

posted @ 2018-03-22 18:35  tom2ling  阅读(142)  评论(0编辑  收藏  举报