5.python(第五天日记)

1.dict   字典:key-value  储存大量的数据,而是关系型数据,查询速度快/数据类型分类:

  可变数据类型(不可哈希):list,dict,set。            #哈希:哈希表

  不可变数据类型(可哈希):int,bool,str,tuple.

  字典的键:不可变数据类型。

  字典的值:任意数据类型。

  容器类型:

    容器类(承载各种数据类型):list,tuple,dict。.

    字典的键是唯一的键值对

    字典的顺序:

      3.5之前,字典是无序的。

      3.6开始,字典创建的时候,按照一定的顺序插入的数值,看起来是有序的。

2.基本操作:      

   info = {'name': 'egon', 'age': 18, 'sex': 'male'}

  1.增:

   1>  有则覆盖,无则添加:    # 即可以改也可以增加

    info['hobby'] = 'girl'

    print(info)

   >>>{'sex': 'male', 'hobby': 'girl', 'age': 18, 'name': 'egon'}

    info['name'] = 'sb'

    print(info)

   >>>{'age': 18, 'sex': 'male', 'name': 'sb'}

   2>  setdeafult 无则添加,有则不变

    info.setdefault('hobby')     #默认是None

    print(info)

   >>>{'sex': 'male', 'hobby': None, 'age': 18, 'name': 'egon'}

    info.setdefault('hobby', 'girl')

    print(info)

   >>>{'age': 18, 'hobby': 'girl', 'name': 'egon', 'sex': 'male'}

    info.setdefault('name', 'sb')     #原来有的key,那么对应的value不变

    print(info)

   >>>{'age': 18, 'name': 'egon', 'sex': 'male'}

  2.删:

   1>  pop  有返回值

    print(info.pop('name'))

    print(info)

   >>>egon

   >>>{'age': 18, 'sex': 'male'}

    print(info.pop('hobby'))

   >>>报错     #无此元素会报错

    print(info.pop('hobby', 123))

    print(info)

   >>>123     #删除项如果没有,默认返回值是None,其他返回你自己设定的值

   >>>{'age': 18, 'name': 'egon', 'sex': 'male'}

   2>  clear  清空

    info.clear()

    print(info)

   >>>{}

   3>  del  

    del info

    print(info)

   >>>报错     #删除整个字典会报错

    del info['name']     #del也可以删除键值对

    print(info)

   >>>{'age': 18, 'sex': 'male'}

    del info['hobby']

    print(info)

   >>>报错     #没有会报错

   4>  popitem  随机删除

    info.popitem()

    print(info)

   >>>{'name': 'egon', 'age': 18}

  3.改:

   1>  有则覆盖,无则添加:    #即可以改也可以增加

    info['name'] = 'sb'

    print(info)

   >>>{'age': 18, 'sex': 'male', 'name': 'sb'}

   2>  两个字典的改:

    info1 = {'name': 'sb', 'hobby': 'girl'}

    info.update(info1)     #将键值对info1覆盖并添加到info

    print(info)

   >>>{'age': 18, 'sex': 'male', 'hobby': 'girl', 'name': 'sb'}

  4.查:

   1>  根据key查value

    print(info['name'])

   >>>egon

    print(info['name1'])

   >>>报错     #没有会报错

   2>  get   根据key查value

    print(info.get('name'))

   >>>egon

    print(info.get('name1'))

   >>>报错     #没有会报错

   3>  keys  查key

    for i in info.keys():

      print(i)

   >>>sex
    name
    age

   4> values 查value

    for i in info.values():

      print(i)

   >>>male
    egon
    18

   5> items 查item

    for i in info.items():

      print(i)

   >>>('name', 'egon')
    ('sex', 'male')
    ('age', 18)

  5.特殊类型 dict 转化成 list

    print(list(info.keys()))

    print(list(info.values()))

    print(list(info.items()))

   >>>['name', 'age', 'sex']
    ['egon', 18, 'male']
    [('name', 'egon'), ('age', 18), ('sex', 'male')]

  6.把元素分别以原有类型提取出字典

    for k, v in info.items():

      print(k, v)

   >>>sex male
    name egon
    age 18

3.概念:分别赋值

    a, b = 2, 3

    a, b = (2, 3)

    a, b = [2, 3]

    print(a,b)

   >>>2  3

    a, b = 2, 3

    a, b = b, a

    print(a,b)

   >>>3  2

4.字典的本质形式

    s = dict(name = 1, age = 2) # 字典的3中本质形式

    print(s)

    s = dict([[1, 2], (3, 4)])

    print(s)

    print({}.fromkeys((1, 2, 3), 'b'))

5.字典的嵌套

    dic = {"name_list":['张三','lisi','隔壁王叔叔'],

        'dic2':{'name':'太白','age':12},}

    1 ,给列表追加一个元素:'旺旺'

    l1 = dic['name_list']

    l1.append('旺旺')

    dic['name_list'].append('旺旺')

    print(dic)

    ,2,给列表lisi全部大写

    print(dic['name_list'][1].upper())

    dic['name_list'][1] = dic['name_list'][1].upper()

    print(dic)

    3,给dic2 对应的字典添加一个键值对:hobby:girl.

    dic['dic2']['hobby'] = 'girl'

    print(dic)

 

 

posted on 2018-03-22 15:01  小鸡刨粑粑  阅读(108)  评论(0编辑  收藏  举报

导航