Python学习笔记--5 字典

字典的优点是速度快,好取值。list和元组是按序搜索,字典是一种k-v形式,按key搜索取值。

字典没有顺序,输入输出都不一定是正确顺序。每次打印出来顺序都不一样,输入时也不用按顺序

 

字典用大括号定义,如下:

xiaojun = {
    'name':'xiaojun',
    'sex':'男',
    'shengao':'185',
    'age':18,
    'email':'acb@qq.com',
    'addr':'火星',
    'id':1
}

一、增:

1)直接赋值:

hailong['zhuzhi'] = '北京' #如果原来有值就覆盖,原来没有就是新增
hailong['age']=30
print(hailong)

2)setdefault():
d['name']='xiaojun' #定义一个d,直接给name赋值
d.setdefault('name','wangcan') #如果这个key已经存在,那么就不修改它的值了

二、删

1)Pop()

hailong.pop('age') #删除指定项
print('删除age',hailong)

2)Popitem()

hailong.popitem()#随机删除
print(hailong)


3)del

del hailong['age']#删除字典的一部分。
print(hailong)

注:字典的k-v是成双成对出现的,不能只删“小军”留“name”。

三、改

1)重新赋值

stus['name'] = '海龙'

2)Update()

name = {'zhuzhi':"北京"}

hailong.update(name) 
print(hailong)

stus.update({'moeny':1000})
print(stus)

四、查

1)直接取值查询

print(hailong['name'])#查询一个不存在的内容会报错。

2)get()
print(hailong.get('addr','火星'))#get查找-不报错,可以设置默认值。如果有就返回一个值,没有就返回none

3) values()
print(hailong.values())#打印hailing的全部value

4) keys()
print(hailong.keys())#打印hailong的全部key

5) items()
print(hailong.items())#打印hailong的全部键值对

五、循环:
for i in hailong:
    print(i)#打印hailong的key


for i in hailong:
    print(i) #搜索hailong的key
   
if i=='name': #从搜索到key中找到name
       
print(hailong[i])#打印hailong的name



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

六、嵌套多层取值

all_stus = {
    'xiaojun':
    {
        'sex': '男',
        'shengao': '185',
        'age': 18,
        'email': 'acb@qq.com',
        'addr': '火星',
        'id': 1,
        'cars':['牧马人','911','野马','劳斯莱斯']
        #五菱宏光
   
},
    'hailong':{
        'sex': '男',
        'shengao': '185',
        'age': 18,
        'email': 'acb@qq.com',
        'addr': '火星',
        'id': 2
    },
    'yangfan':{
        'sex': '男',
        'shengao': '185',
        'age': 18,
        'email': 'acb@qq.com',
        'addr': '火星',
        'id': 3,
        'bags':{
            'qianbao':['lv','ysl'],
            'beibao':['coach','abc']
        }
    }
}



#内容太多时,可字典嵌套字典。name作为key

#xiaojun
的车加一个五菱宏光
all_stus['xiaojun']['cars'].append('五菱宏光')
print(all_stus)

#查看xiaojun一共多少辆车
print(len(all_stus["xiaojun"]["cars"]))

#把yangfan的性别改成女
all_stus['yangfan']['sex']='女'
print(all_stus)

#yangfan去掉一个lv钱包
all_stus['yangfan']['bags']['qianbao'].remove('lv')
print(all_stus)

原文地址:https://www.cnblogs.com/youyou-luming/p/9568840.html