python基础篇 03-字典基本操作

字典 增 、删、改、查,遍历value key 判断key是否存在

l = ['xiaohei','hahe','112342','北京','29']

d = {
    'username':'xiaohei',
    'id':1,
    'grade':'hahe',
    'addr':'北京',
    'age':18
}
# 新增
d['addr'] = 'shanghai'
d.setdefault('age',38)            #如果key已经存在了,则返回原来的值;如果key不存在,则insert key value为default,并返回值为default值
# setdefault是设置某个key的时候判断key是否已存在,如果存在,则保留原来的值并返回原来的value值,如果key不存在,则新增key并设置value为defalut,返回default
# 而defaultdict 是初始化字典类型的变量时 给所以key的默认值,当dd[key] key不存在时不会报key error错误,返回默认值
from collections import defaultdict
cc = defaultdict({})
value = cc['name']      # 返回的时{}空字典

# dict.fromkeys(iterable,default_value)
# 栗子
new_list = ["jack", "jerry"]
new_dict = dict.fromkeys(new_list,{"company":"home"})


# 修改
d['addr'] = 'shanghai'

# 取值
print(d['addr'])                  # 此中方法 最好不要用 如果key不存在,则容易抛异常;
print(d.get('sex',''))          # 如果key存在,则取出key中的值,如果key不存在,则返回给定的值;
#
#删除
d.pop('username')                   # key不存在,则抛异常KeyError
del d['addr']                       # key不存在,则抛异常KeyError



print(d.keys())                     # 字典中所有的key都取出来
print(d.values())                   # 字典中所有的value都取出来

# 更新一个key-value,给字典增加key-value
# update方法中入参为一个可迭代对象d.update(iterable),key=value/[(aa,bb)]/((aa,bb),)/{"key":"value"} d.update(a=1,b=2)
d.update(a=1,b=2)
d.update((("name","haha"),))
d.update([("name1","haha1")])
d.update({"name2":"haha2"})


# 清空字典
d.clear()#清空


users = {
    'fd':'123455',
    'xzh':'456789'
}
# 遍历获取key
username = 'fd'
print(d.keys())                         # keys()的方法是先把key捞出来,然后放在list中
print(username in users.keys())         # keys()的方法是先把key捞出来,然后放在list中
print(username in users)                #判断这个key是否存在的

# 获取 key-value
print(d.items())    #把字典转换为二维数组了    
# 输出 [('username', 'xiaohei'), ('id', 1), ('grade', '天马座'), ('addr', '北京'), ('age', 18), ('a', 1), ('b', 2)] for k,v in d.items(): print(k,v)
#  循环访问 key
for k in d:      #循环 是 字典中的key  推荐使用此种方式 
    print(k,d.get(k))

 

 

例子1:

users = {
    'fd':'1234',
    'lhy':'456'
}

for i in range(3):
    username = input('username:').strip()
    password = input('password:').strip()
    cpwd = input('pwd:').strip()
    if username =='' or password =='' or cpwd == '':
        print('账号/密码不能为空')
    elif password != cpwd:
        print('两次输入的密码不一致')
    elif username in users:
        print('账号已经存在')
    else:
        users[username] = password
        print('注册成功!')
        break
else:
    print('错误次过多')

print(users)

例子2:

info = {
    'lgy':{
        'age':18,
        'addr':'beijing',
        'cars':['bmw','ben-z','audi']
    },
    'fd':{
        'house':{
            'bj':['海淀区','昌平区','朝阳区','西城区'],
            'sh':['静安区','闸北区']
        },
        'money':5000
    }
}

#lgy,又买了一辆 五菱宏光
#fd,卖了北京的 昌平区的房子,钱增加了 4000000
info['lgy']['cars'].append('五菱宏光')
info['fd']['house']['bj'].remove('昌平区')
info['fd']['house'].pop('sh')
# info['fd']['money'] = info['fd']['money'] + 4000000
info['fd']['money'] += 4000000
print(info)

 

posted @ 2021-03-25 16:00  捞铁  Views(21)  Comments(0Edit  收藏  举报