zoukankan      html  css  js  c++  java
  • Python学习(五)字典

    1、字典都是key-value 形式

    有以下两个特点:取数据方便,速度快

    字典是无序的

    2、查询

    1)查询一

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info.get('name'))  

    取对应key的value值,结果为:刘佳

    如果key值不存在,不会报错,会返回none,如下图

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info.get('phone'))  

    phone这个key是没有的,所以返回的value是none

    2)查询二

    获取对应key的value值时,在key后面可跟一个value,如果key存在,则输出的还是字典中key对应的value

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info.get('name',110))

    因为name这个key在字典中存在,所以输出的value是刘佳

    如果key不存在,如下

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info.get('phone',110))

    输出的结果为:110

    3)查询三

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info['name'])

    该种查询方式,key存在的话,与第一二种方式相同,输出为:刘佳

    如果key不存在,则会报错

    3、新增

    1)新增一

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info['phone']=1244564    #增加一个key-value
    print(info)

    为该字典增加一个key-value,输出结果为:

    {'name': '刘佳', 'sex': '', 'addr': '地球', 'age': 18, 'phone': 1244564}

    2)新增二

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info.setdefault('money','200w') #增加一个key-value
    print(info)

    为该字典增加一个key-value,输出结果为:

    {'name': '刘佳', 'sex': '', 'addr': '地球', 'age': 18, 'money': '200w'}

    4、修改

    1)修改一

    如果key存在,不会改变value的值,即不能修改成功,该方法其实就是新增有效

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info.setdefault('name','emily') #如果key存在,不会修改原来key的值
    print(info)

    输出结果为:

    {'name': '刘佳', 'sex': '', 'addr': '地球', 'age': 18}

    2)修改二

    如果key存在,会修改value的值 

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info['name']='emily' #如果key存在的话,会修改原来key的值
    print(info)

     输出结果为:

    {'name': 'emily', 'sex': '', 'addr': '地球', 'age': 18}

    5、删除

    1)指定key删除

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info.pop('name') #指定key来删除
    print(info)

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    del info['name'] #指定key来删除
    print(info)

     输出结果都为:

    {'sex': '', 'addr': '地球', 'age': 18}

    2)随机删除一个key

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info.popitem() #随机删除一个key
    print(info)

    输出结果也可能是任意key-value值

    3)清空字典

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    info.clear() #清空字典
    print(info)

     输出结果就是整个字典清空 {}

    6、字典方法:获取key或value

    info = {'name':'刘佳','sex':'','addr':'地球','age':18}
    print(info.values()) #获取字典所有value
    print(info.keys()) #获取字典所有key
    print(info.items()) #获取字典所有key-value

    输出结果:

    dict_values(['刘佳', '', 18, '地球'])
    dict_keys(['name', 'sex', 'age', 'addr'])
    dict_items([('name', '刘佳'), ('sex', ''), ('age', 18), ('addr', '地球')])

    7、嵌套字典&嵌套数组

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

    查找张流量所有的USA的车,可以这样查

    print(people['张流量']['cars']['usa'])

    查找张流量的qq车,应该这样查

    print(people['张流量']['cars']['china'][1])  

    给田雨增加200块钱:

    people['田雨']['money'] += 200
    print(people['田雨']['money'])

    给田雨增加一双匡威鞋:

    people['田雨']['shoes'].append('匡威')
    print(people['田雨']['shoes'])

    8、循环

    直接循环字典,就是循环字典的key

    字典依然是上文提到的people的字典,循环字典

    for p in people:
       print(p)

    输出结果为:田雨 张流量

    循环时同时取key和value的值

    for k,v in people.items():  #循环的时候,同时取key 和 value
      print(k ,v)

    输出结果就是字典people的整个数据

     9、小练习

    user = {'emily':'122123',
            'emilyq':'23124'}
    print('emily' in user)  #字典里面用in来判断的话,知识判断key是否存在,存在返回true,不存在返回false
    for i in range(3):
        username = input('请输入账号:').strip()
        passwd = input('请输入密码:').strip()
        cpasswd = input('请确认密码:').strip()
        if username=='' or passwd=='' or cpasswd=='':
            print('用户名/密码不能为空')
        elif username in user:
            print('用户名已经被注册过了')
        elif passwd!=cpasswd:
            print('两次密码输入的不一样')
        else:
            print('恭喜,注册成功')
        #user.setdefault(username,passwd)  
        user[username]=passwd
    else:
        print('输入错误次数过多')

     

  • 相关阅读:
    Spring boot 请求接口404
    Windows下安装Redis
    利用maven的profiles灵活的配置多环境
    各个JSON技术的比较
    常用工具软件
    Java方法 传值方式
    JVM内存模型
    spring-task解决定时问题
    quartz Cron表达式解读
    maven 常用命令
  • 原文地址:https://www.cnblogs.com/emilyliu/p/8665934.html
Copyright © 2011-2022 走看看