python--字典基本操作

字典

 格式  key  :value

# string list dict
#  1、取数据方便
# 2、速度快,

定义一个空字典:

d = dict()

或者 d = { }

infos  =  {'name':'张流量','sex':'','addr':'火星','age':180}
#
print(infos.get('phone'))#取不到这个key的话,就是None
print(infos.get('phone',110))#如果取不到这个key的话,默认就是110
print(infos['phone'])#如果key不存在会报错

#
infos['phone']=13611087045 #增加一个key
infos.setdefault('小金库','2000w')
infos.setdefault('name','鹏妹妹') #如果key存在的话,不会修改原来key里面的值
infos['name']='鹏妹妹1' #如果key存在的话,会修改原来key对应的value
print(infos)
# #字典是无序的

# #修改
infos['name']='鹏妹妹'
print(infos)

# 删除
infos.pop('name') #指定key来删除
print(infos)
infos.popitem() #随机删除一个key
print(infos)
del infos['phone'] #指定key来删除
print(infos)
infos.clear()  #清空字典
print(infos)

 

 

# #方法
print(infos.values())#获取到字典所有的value
print(infos.keys()) #获取到字典所有的key
print(infos.items()) # 获取字典所有的k-v

 

字典练习

people = {
   '田雨':{
      'age':18,
      'money':200000,
      'clothes':'100',
      'hzp':'n',
      'shoes':['nike','addis','lv','chanle']
   },
   '张流量':{
      '金库':'2000w',
      'house':['三环一套','42'],
      'cars':    {
            'japan':['普拉多','兰德酷路泽'],
            'usa':['林肯','凯迪拉克','福特'],
            'china':['五菱宏光','qq','红旗']
         }
   }
}
people['张流量']['cars']['usa'].append('牧马人')

people['田雨']['shoes'].append('匡威')
print(people)
people['田雨']['money'] = people['田雨']['money']+200
people['田雨']['money'] += 200
print(people)
# #直接循环一个字典的话,那么循环的是字典的key
for p in people:
   print(p)
for k,v in people.items():  #循环的时候,同时取keyvalue
   print(k,'======',v)

 

练习2

users = {
   'niuhanyang':'123456',
   'yangyafu':'456789',
}
#所有的账号和密码
# username
# pwd
# cpwd
# print( '123456' in users )   #字典里面用in来判断的话,只是判断key是否存在
for i in range(3):
   username = input('账号:').strip()
   passwd = input('密码:').strip()
   cpasswd = input('密码确定:').strip()
   if username=='' or passwd=='' or cpasswd=='':
      print('用户名/密码不能为空')
   elif username in users:
      print('用户名已经被注册!')
   elif passwd!=cpasswd:
      print('两次输入的密码不一致')
   else:
      print('恭喜,注册成功!')
      # users.setdefault(username,passwd)
      users[username]=passwd
      break
else:
   print('错误次数过多')
print(users)

 

 

 

原文地址:https://www.cnblogs.com/duanjialin007/p/8661303.html