字典的基本操作

 

-------------------------------增加数据-------------------------------

1 -- 直接进行键和值的添加

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

#注意:这种增加方式,如果字典中存在这个键,就会更改值
dic['hight'] = 165

print(dic)

#结果:
#{'name': '王小二', 'age': 18, 'sex': '男', 'hight': 165}

 

2 -- 防止出现键重复的方法添加

  setdefault函数说明:

  当键存在时,这个函数返回对应的值

  当键不存在时,返回None

  如果键存在,不会对这个键的值做任何操作

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

#检测这个键是否存在,不存在就添加这个键,并且将值设置为 None
#存在不做任何事情
dic.setdefault('hight')

#直接向字典中添加一对键值
#如果键存在,不修改值
dic.setdefault('weight',20)

 

-------------------------------删除数据-------------------------------

 

1 -- pop函数

  注意:pop函数会返回当前键的值

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

dic.pop('name')

#结果:
#{'age': 18, 'sex': '男'}

  使用pop函数时,如果字典中没有这个键,就会报错,可以自定义返回值来返回

  解决方法:

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

#当找不到键时,返回None
dic.pop('weight',None)

print(dic)

 

2 -- clear()清空字典

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

dic.clear()

print(dic)

#结果: {}

 

 

 

3 -- del  删除字典

  注意:如果使用del删除整个字典时,这个字典变量也不存在。。在调用会报错

     因为del删除的是字典所占用的内存空间

dic = {
    'name':'王小二',
    'age':18,
    'sex':''
    }

del dic['name']

print(dic)

#结果:
#{'age': 18, 'sex': '男'}

 

 

-------------------------------更改( 更新 )数据-------------------------------

 

1 -- update函数

  使用update函数可以把字典1的数据全部赋值给字典2,但是如果二个字典中如果有相同的键就会同时覆盖

  没有的键值就进行添加,同时字典2本来就存在的数据不动

dic = {'name':'王小二','age':18,'sex':''}

dic2 = {'name':'小红','age':8,'weight':90}

dic2.update(dic)

print(dic2)

#结果
#{'name': '王小二',  'age': 18,   'weight': 90,  'sex': '男'}

 

-------------------------------查找数据-------------------------------

 

1 -- keys() 查找键

  keys函数可以返回该字典中的所有键名

  注意:keys函数返回的是一个列表类型,

dic = {'name':'王小二','age':18,'sex':''}

print(dic.keys())

#结果:
#['name', 'age', 'sex']

 

2 -- values() 查找值

  valuse函数可以返回该字典中所有的值

  注意: values函数返回的是一个列表类型

dic = {'name':'王小二','age':18,'sex':''}

print(dic.values())

#结果:
#['王小二', 18, '男']

 

3 -- items() 查找键值对

  items函数返回的是一个列表,但是这个列表里存放的是元组类型

  每个元组里存放的就是一个键值对

dic = {'name':'王小二','age':18,'sex':''}

print(dic.items())


#结果:
#[('name', '王小二'), ('age', 18), ('sex', '男')]

 

4 -- get()函数  取值

  get函数可以传递一个键名,来取出对应的值,如果没有这个键,默认返回None

  也可以通过参数2 进行自定义找不到键名的返回内容

  使用这种取值方法,当没有键名的情况下,程序不会崩溃

dic = {'name':'王小二','age':18,'sex':''}

n = dic.get('name','没找到')
print(n)

#结果:   王小二

------------------------------
dic = {'name':'王小二','age':18,'sex':''}

n = dic.get('weight','没找到')
print(n)

#结果: 没找到

 

 

 

-------------------------------遍历字典-------------------------------

1 -- 遍历键

  在使用for循环时,默认直接遍历键名

  

dic = {'name':'王小二','age':18,'sex':''}
for i in dic:    #相当于调用 dic.keys()
    print(i)

#结果:
#name  age  sex

 

2 -- 遍历值

dic = {'name':'王小二','age':18,'sex':''}

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

#结果:
#王小二  18  男

 

3 -- 遍历键和值

dic = {'name':'王小二','age':18,'sex':''}

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

#结果:
#name   王小二
#   age  18
#   sex   男

 

posted @ 2018-12-28 00:54  Chris_GK  阅读(239)  评论(0)    收藏  举报