字典

  字典和字符串、列表是比较常用的数据类型,当记录一个学生的学习信息的时候,使用列表和字符串就不太方便了,很难取到一个具体的元素的值,这个时候使用字典就比较方便了,字典的方法也有许多,需要记住具体的使用格式。

1.字典的定义

使用{}里面的元素是一个Key对应一个Value,并且每一个元素需要用逗号隔开

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}

 

 

2.查询字典value的值

1)通过中括号进行取值

格式为变量名[key]

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
print(info['name'])

输出结果:

xiaoming

注意:字典中的key是不可以重复的

2) 通过Get取值

格式为变量名.get(key)

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
print(info.get('name'))

print(info.get('add',"没有找到"))

输出结果:

Xiaoming

没有找到

注意:用中括号取值和get方法取值的区别 ,get方法获取不到key的时候,不会报错,中括号取值找不到key会报错,get方法还可以多传一个参数,如果get不到key的话,那么返回上传的参数,如果不写的话,默认get不到返回None

 

3.新增字典中的key和value

1) 使用中括号新增

格式:变量名[key]=value

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info['addr']='河南'
print(info)

输出结果:

        {'age': 20, 'name': 'xiaoming', 'id': 1, 'addr': '河南', 'sex': 'nan'}

2) 使用setdefault方法新增

格式:变量名. Setdefault(key,value)

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info.setdefault('addr','河南')
print(info)

输出结果:

        {'age': 20, 'addr': '河南', 'sex': 'nan', 'id': 1, 'name': 'xiaoming'}

 

4.修改字典中的value

格式:变量名[key]=value

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info['name']='MLing'
print(info)

输出结果:

{'sex': 'nan', 'id': 1, 'name': 'MLing', 'age': 20}

注意:修改只有这一种方法,在有这个key的情况下那就是修改这个key的value,没有这个key的话,就是新增

 

 5.删除字典中的元素

1) del方法

格式:del 变量名[key]

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
del info['name']
print(info)

输出结果:

{'sex': 'nan', 'age': 20, 'id': 1}

注意:传出的key要是存在的,不然会报错的

2) pop方法删除

 

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info.pop('name') #删除key以及它对应的value
print (info.pop('sex')) #pop方法可以返回删除的value
print(info)

输出结果:

nan

{'age': 20, 'id': 1}

注意:因为字典是无序的,所有需要传值,必须指定Key,且必须存在,不然会报错的,pop方法可以返回删除的key的value

3) popitem()随机删除一个元素

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info.popitem()
print(info)

输出结果:

{'id': 1, 'sex': 'nan', 'age': 20}

注意:因为不确定删除的元素,所以这种方法会很少用

4) clear方法-清空所有内容

info = {
    'name':'xiaoming',
    'sex':'nan',
    'age':20,
    'id':1,
}
info.clear()
print(info)

输出结果:

  {}

 6.多层嵌套取值:

1)取'car'中的'yellow'

all  = [ {
    'car':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'name':"BMW"
       
} ,
    'car1':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'country':"china"
       
},
    'car2':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L"
       
}
}
]
bb=all[0].get('car').get('moeny') #使用get取值
aa=all[0]['car']['color'][1] #使用中括号取值,注意每个key需要有引号的
print(aa,bb)

7.常用方法

1) Keys方法获取字典中所有的key

all  =  {
    'car':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'name':"BMW"
        } ,
    'car1':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'country':"china"
        },
    'car2':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L"
        }
}
print(all.keys())

输出结果:

  dict_keys(['car', 'car2', 'car1'])

2) values方法获取字典中所有的values

all  =  {
    'car':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'name':"BMW"
        } ,
    'car1':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L",
            'country':"china"
        },
    'car2':
        {
            'color':['red','yellow','black'],
            'moeny':1111111,
            'pailiang':"2.5L"
        }
}
print(all.values())

输出结果:

  dict_values([{'name': 'BMW', 'color': ['red', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}, {'color': ['red', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}, {'country': 'china', 'color': ['re

d', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}])

 

3) items方法循环字典中的key和value

将字典中的数据,转换为一个列表,并将每个key和value放在一个元素中

info2 = {
    'name':"hhh",
    'sex':'nan'
}
print(info2.items())

返回结果:

dict_items([('name', 'hhh'), ('sex', 'nan')])

要取到key和value就需要对items方法返回的列表进行循环

info2 = {
    'name':"hhh",
    'sex':'nan'
}
for k ,v in info2.items():
    print(k,v)

返回结果:

sex nan

name hhh

4) 直接循环字典进行取值

info2 = {
    'name':"hhh",
    'sex':'nan'
}
for k in info2:
    print(k,info2[k])

返回结果:

sex nan

name hhh

  因为items方法是需要先把字典转换为列表,之后在循环取里面的key和values,当数据量过大的时候,效率会比较低,由于字典循环的时候,是先循环的key,所以可以直接通过循环的key进行取value,这样效率会高很多

5) Update方法将把两个字典合并到一起,如果有一样的key,那么更新value

info1 = {
    'name':"hhh",
    'sex':'nan'
}
info2 = {
    'name':"哈哈",
    'sex':'女',
    'addr':'河南'
}
info1.update(info2)
print(info1)

输出结果:

  {'sex': '女', 'name': '哈哈', 'addr': '河南'}

 

 








 

posted @ 2017-05-29 23:03  MLing  阅读(174)  评论(0编辑  收藏  举报