zoukankan      html  css  js  c++  java
  • 基本数据之-字典

    1.字典的创建的多种方法:但是目前只需求3种就可

    # 方式一:
    # dic = dict((('one', 1), ('two', 2), ('three', 3)))
    # print(dic)  # {'one': 1, 'two': 2, 'three': 3}
    

      

    # 方式二:
    dic = dict(one=1, two=2, three=3)
    print(dic)
    # 方式三:
    dic = dict({'one': 1, 'two': 2, 'three': 3})
    print(dic)
    
    #结果 {'one': 1, 'two': 2, 'three': 3}

    2.字典的增删改查

    增加一个setdefault  如果存在key ,不会执行新增
    # 增:
    #1. 直接增加 有则改之,无则增加
    dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    
    dic['sex'] = ''
    print(dic)
    
    结果:{'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车'], 'sex': ''}
    
    
    dic['age'] = 23  #
    
    结果:dic = {'name': '太白', 'age': 23, 'hobby_list': ['直男', '钢管', '开车']}
    #删,
    # pop 按照键删除键值对, 有返回值  ***
    # 设置第二个参数则无论字典中有无此键都不会报错
    #如果无key时,用pop(a,b)这种方式.增加第二个参数,就不会报错.会把第二个参数直接带出来.删除建义用这种
    
    dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    
    dic.pop('age')
    
    #结果:dic = {'name': '太白',  'hobby_list': ['直男', '钢管', '开车']}
    
     ret = dic.pop('hobby','没有此键')
    print(ret) 
    结果是:没有此键   
    # clear  清空  **
    dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    dic.clear()
    print(dic)
    
    结果:{}
    # del  **
    # # del dic['age']
    # del dic['age1']
    # print(dic)
    
    如key时没有的话.会直接报错.建义用pop带第二个参数删除
    #
    dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    dic['name'] = 'alex'
    print(dic)
    
    结果:{'name': 'alex', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}
    #
    # print(dic['hobby_list'])
    # print(dic['hobby_list1'])
    #用这种方法查的话.如没有key时.会报错..用get来查找
    
    # get  ***
    # l1 = dic.get('hobby_list')
    # l1 = dic.get('hobby_list1','没有此键sb')  # 可以设置返回值
    # print(l1)

    3.三个特殊的keys ,values,items

    keys:取的是所有的主键

    values:取的是所有的键值

    items:取的是所有的主键和键值

    # 可以转化成列表
    # print(list(dic.keys()))
    # print(list(dic.values()))
    # for key in dic.keys():
    #     print(key)  取的是所有的key值
    
    # for key in dic:
    #     print(key)
    
    
    # values()
    # print(dic.values())
    # print(list(dic.values()))
    
    # for value in dic.values():
    #     print(value)  取的是所有的value值
    
    
    # items()
    # print(dic.items())
    
    # for key,value in dic.items():
    #     print(key,value) 取的是所有的key,value值

     4。字典的嵌套

    dic = {
        'name': '汪峰',
        'age': 48,
        'wife': [{'name': '国际章', 'age': 38},],
        'children': {'girl_first': '小苹果','girl_second': '小怡','girl_three': '顶顶'}
    }
    
    # 1. 获取汪峰的名字。
    print(dic['name']) 
    
    #或者 get()
    print(dic.get('name')
    
    # 2.获取这个字典:{'name':'国际章','age':38}。
    print(dic.get('wife')[0])
    或者
    dic['wife'][0]
    
    # 3. 获取汪峰妻子的名字。
    print(dic['wife'][0]['name'])
    
    # 4. 获取汪峰的第三个孩子名字。
    print(dic['children']['girl_three'])

    一些例题

    *选做题:**判断⼀句话是否是回⽂. 回⽂: 正着念和反着念是⼀样的. 例如, 上海 ⾃来⽔来⾃海上
    
    content = input('请输入:')
    if content == content[::-1]:
        print('它是回文')
    else:
        print('它不是')
  • 相关阅读:
    Hdu 5396 Expression (区间Dp)
    Lightoj 1174
    codeforces 570 D. Tree Requests (dfs)
    codeforces 570 E. Pig and Palindromes (DP)
    Hdu 5385 The path
    Hdu 5384 Danganronpa (AC自动机模板)
    Hdu 5372 Segment Game (树状数组)
    Hdu 5379 Mahjong tree (dfs + 组合数)
    Hdu 5371 Hotaru's problem (manacher+枚举)
    Face The Right Way---hdu3276(开关问题)
  • 原文地址:https://www.cnblogs.com/zengluo/p/12854677.html
Copyright © 2011-2022 走看看