Fifth 字典/集合/

嵌套的真正含义:

  当小列表里面的数值变化的同时会影响大列表中的,增则直接增加,改则需要再赋值

可变与不可变:

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

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

数据类型的分类

  容器型数据类型:list,tuple,dict,set

  非容器型数据类型:str,bool,int

1、字典:

  why:列表查询速度相对满且没有强的关联性

  what:{'name', 'xxx'}以键值对形式存储的数据类型

     1、字典的键必须是不可变(可哈希)的数据类型,唯一的不重复

        字典的值可以是任意数据类型(对象)

     2、字典的查询速度非常快

     3、字典再3.5包括3.5之前是无序的,但是3.6优化机制,

        字典会按照创建字典之初的顺序排序

     4、字典可以存储大量的关联性数据

        {'name': 'xxx', 'python3': ['xx', 'xxx', 'xx'],

          '学威': {

            'name': '学威'

            'id': '123451'

            'sex': '男'

            }''

       }

  增

dic[keys] = [x]    #有则覆盖,无则添加,多个位元祖

dic1.setdefault(k, v)    #有则跳过,无则添加

 

  删  

dic = {'name': 'barry', 'age': 18, 'sex' : 'man'}
dic.pop('name')    # 删除对应的键值,有返回值
dic.pop('name1', None)    #没有对应的简直则返回设置的None

dic.clear()    # 清空字典
dic.popitem  #删除最后一个健值对,有返回值返回元祖tuple

del dic      # 删除整个字典
del dic['name']    #删除健值,如果没有则报错

  改

dic['age']  = 28

dic2.update(dic1)    #将dic1字典中键值对覆盖添加到dic2
dic.update(weight=150,high=175)    #键值对添加

  查

dic['name']    #按照键值对查对应的值,没有则报错

dic.get('age', '返回值')    #按照健值对查对应的值,没有则返回None,也可以设置返回值

#直接for循环字典获取的是key值

#dic.keys()    dic.values()    dic.items()
#上面的三个都是返回一个类似与列表的容器的特殊数据类型
for key in dic.keys():
for value in dic.values():
for item in dic.items():    #循环出来的item是键值对类型的元祖

#分别赋值
a, b = 100, 200
a, b, c = (1, 2, 3)
a, b, c = [1, 2, 3]
for k, v in dic.items():    #可以将item的元祖分别赋值到k, v两个变量里面

 1、格式化输出%s:

  第一种是%s做占位符

  第二张是通过字典:

    如:dic = {'name':'xxx', 'sex':'yyy','age':18}

      msg = '我叫%(name)s, 今年%(age)s, 性别%(sex)s' % dic

        

posted @ 2018-12-25 12:20  pythonernoob  阅读(110)  评论(0)    收藏  举报