美文网首页
python——字典

python——字典

作者: hiDaLao | 来源:发表于2018-08-21 15:28 被阅读9次

    字典


    第一种:借助key

      字典[key] = 'value'

      有则改,无则加(记得加引号)

    dic = {'name':'太白','age':18,'sex':'男',}
    dic['name'] = 'alex'
    dic['job'] = 'IT'
    dic,len(dic)
    
    ({'name': '太白', 'age': 18, 'sex': '男'}, 3)
    

    第二种:setdefault()方法

      字典.setdafault('key','value')

       有则不做任何操作,返回对应的值;无则加

    dic = {'name':'太白','age':18,'sex':'男',}
    print(dic,dic.setdefault('name','alex'))
    dic.setdefault('job')
    dic.setdefault('hobby','driving')
    dic.setdefault(1,{'color':'black'})
    print(dic)
    
    
    {'name': '太白', 'age': 18, 'sex': '男'} 太白
    {'name': '太白', 'age': 18, 'sex': '男', 'job': None, 'hobby': 'driving', 1: {'color': 'black'}}
    


    第一种:pop()方法

      字典.pop('key','提示语')

      根据key去删除,若有,则删;若无,pop中若设置了第二个参数,则返回第二个参数,若无,则报错,一次仅能删除一个元素

    dic = {'name':'太白','age':18,'sex':'男'}
    print(dic,dic.pop('name'))
    print(dic,dic.pop('name1','无此值'))
    dic.pop('name2')
    
    
    {'age': 18, 'sex': '男'} 太白
    {'age': 18, 'sex': '男'} 无此值
    
    
    
    ---------------------------------------------------------------------------
    
    KeyError                                  Traceback (most recent call last)
    
    <ipython-input-12-a148355758b0> in <module>()
          3 
          4 print(dic,dic.pop('name1','无此值'))
    ----> 5 dic.pop('name2')
    
    
    KeyError: 'name2'
    

    第二种:popitem()方法

      字典.popitem()
      python3.5之前随机删除一个键值对,3.6之后默认删除最后一个键值对.pop中仅有一个参数

    dic = {'name':'太白','age':18,'sex':'男'}
    dic.popitem()
    dic
    # dic.popitem(1)
    
    
    {'name': '太白', 'age': 18}
    

    第三种:del方法

      del 字典[key]
      按照键删除键值对,一次只能删除一个元素。del dic可从内存级别删除字典

    dic = {'name':'太白','age':18,'sex':'男'}
    del dic['name']
    print(dic)
    del dic
    dic
    
    {'age': 18, 'sex': '男'}
    
    
    
    ---------------------------------------------------------------------------
    
    NameError                                 Traceback (most recent call last)
    
    <ipython-input-15-34f1c6d1c059> in <module>()
          3 print(dic)
          4 del dic
    ----> 5 dic
    
    
    NameError: name 'dic' is not defined
    

    第四种:clear方法

      字典.clear
      清空字典

    dic = {'name':'太白','age':18,'sex':'男'}
    dic.clear()
    dic
    
    {}
    


    第一种:通过键赋值

      字典[key] = value
      增的第一种方法,若有则改,若无则加

    dic = {'name':'太白','age':18,'sex':'男'}
    dic['name'] = 'alex'
    dic['job'] = 6
    dic
    
    {'name': 'alex', 'age': 18, 'sex': '男', 'job': 6}
    

    第二种:update方法

      字典1.update(字典2)
      将字典2中的所有键值对覆盖添加到字典1中,字典2不变

    dic = {'name':'太白','age':18,'sex':'男'}
    dic2 = {'name':'alex','job':'it','hobby':'driving'}
    dic.update(dic2)
    print(dic,dic2)
    dic3 = {'name':'wusir','age': 20}
    dic4 = {'fisrt':'yang','weight':70}
    dic3.update(dic4)
    dic3,dic4
    
    {'name': 'alex', 'age': 18, 'sex': '男', 'job': 'it', 'hobby': 'driving'} {'name': 'alex', 'job': 'it', 'hobby': 'driving'}
    
    
    
    
    
    ({'name': 'wusir', 'age': 20, 'fisrt': 'yang', 'weight': 70},
     {'fisrt': 'yang', 'weight': 70})
    

    update()还可以直接改字典一中的内容,格式为
    字典一.update(key = value))
    但需要注意的是,此时的key必须是字典一中所包含的key,而且不可以加引号

    dic = {'name':'太白','age':18,'sex':'男'}
    dic.update(name = 'yang')
    dic
    
    {'name': 'yang', 'age': 18, 'sex': '男'}
    

    查:


    第一种:字典[key]

      若无报错

    dic = {'name':'太白','age':18,'sex':'男'}
    a = dic['name']
    print(a)
    b = dic['job']
    
    太白
    
    
    
    ---------------------------------------------------------------------------
    
    KeyError                                  Traceback (most recent call last)
    
    <ipython-input-33-155bc2950dc5> in <module>()
          2 a = dic['name']
          3 print(a)
    ----> 4 b = dic['job']
    
    
    KeyError: 'job'
    

    第二种:get方法

      字典.get(key,'提示信息')
      若有,则返回value值,若无,若设置第二个参数,返回第二个参数,否则返回none

    dic = {'name':'太白','age':18,'sex':'男'}
    print(dic.get('name'))
    print(dic.get('name1','无此值'))
    print(dic.get('name2'))
    
    太白
    无此值
    None
    

    dic.keys()  dic.values()  dic.items()

      可遍历,可转list

    dic = {'name':'太白','age':18,'sex':'男'}
    print(dic.keys(),type(dic.keys()))
    l1 = list(dic.keys())
    print(l1,type(l1))
    
    dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>
    ['name', 'age', 'sex'] <class 'list'>
    
    dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
    for i in dic.keys():
        print(i)
    
    name
    age
    sex
    job
    

    分别赋值

    a = 10
    b = 20
    a,b = b,a
    a,b
    
    (20, 10)
    
    dic = {'name':'太白','age':18,'sex':'男','job':'IT'}
    for i,j in dic.items():
        print(i,j)
    
    name 太白
    age 18
    sex 男
    job IT
    

    小练习

    dic = {'name_list': ['王双', 'alex', '孙飞', 'taibai'],
           1: {'name': 'taibai', 'age': 18, 'sex': '男'},
           (1, 2): [100, {'ip': '192.168.1.1', 'port': 3306}]
           }
    # 1,给 name_list对应的列表追加一个值: 司徒大人.
    
    dic['name_list'].append('司徒大人')
    dic
    
    # 2,将name_lsit对应的alex 变成全部大写.
    
    dic['name_list'][1] = dic['name_list'][1].upper()
    dic
    
    # 3, 将1对应的字典添加一个键值对: weight : 75
    
    dic[1]['wight'] = 75
    dic
    
    # 4,将1 对应的字典的name键对应的名字taibai 换成alex
    
    dic[1]['name'] = 'alex'
    dic
    
    # 5,将 {'ip': '192.168.1.1', 'port': 3306} 次字典的port键值对删除.
    
    dic[(1,2)][1].pop('ip')
    dic
    
    {'name_list': ['王双', 'ALEX', '孙飞', 'taibai', '司徒大人'],
     1: {'name': 'alex', 'age': 18, 'sex': '男', 'wight': 75},
     (1, 2): [100, {'port': 3306}]}
    
    a = 'alex'
    b = list(a)
    print(b)
    

    相关文章

      网友评论

          本文标题:python——字典

          本文链接:https://www.haomeiwen.com/subject/sbkjiftx.html