• 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)

     

     

     

  • 相关阅读:
    [网络流24题(1/24)] 最小路径覆盖问题(洛谷P2764)
    Codeforces 1082 G(最大权闭合子图)
    bzoj 1497(最大权闭合图/最小割)
    loj 515(bitset优化dp)
    bzoj 3998 (后缀自动机)
    HDU 6071(同余最短路)
    SPOJ COT2 (树上莫队)
    Atcoder Grand Contest 20 C(bitset优化背包)
    hdu 6480-6489 (2018 黑龙江省大学生程序设计竞赛)
    POJ 2594 Treasure Exploration(可重点最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/duanjialin007/p/8661303.html
Copyright © 2020-2023  润新知