05 字典的基础

1 内容大纲

  • 字典的基础知识
  • 字典的使用(增删改查)
  • 字典的嵌套

2 内容回顾

  • 列表:一种容器数据类型,可以承载大量的数据类型,有序的数据
      • append:追加
      • insert 插入到指定位置
      • extend 迭代着追加
      • pop 按照索引删除,但是什么都不写则会默认删除最后一个
      • remove 按照元素删除,如果有重复的,则删除第一个
      • clear 清空
      • del 按照索引删除,也可以按照步长进行删除
      • list[1] = 2
      • list[1:3] = 'hello' #将hello添加到[1:3]之间
      • list[1:4:2] = 'ab' #如果使用步长,只有两个位置,则后面的赋值需要进行匹配
      • 按照索引查,切片以及for循环
  • 元组:只读列表,可以进行拆包
  • range:自己控制数字范围的数字列表
    • lst = range(5)
      • print(lst[1:3]) #range(1,3)
      • print(lst[-1]) #-4
      • print(lst[1,5,-1] #结果为空

3 今日内容

  1. 字典的初识

    • 为什么需要字典?
      • 列表可以存储大量的数据,但是数据和数据之间的关联性不强
      • 列表的查询速度相对比较慢
    • 数据类型的分类(可变的数据类型)
      • 可变的数据类型(不可哈希):列表、字典、集合
      • 不可变的数据类型(可哈希):字符串、布尔、元组、整数
  2. 字典是意义对应的键值对

    • dic ={'太白':'name','jin':2}
      
    • 键必须是不可变的数据类型,例如int,str,值可以是任毅的数据类型,对象

      • 字典3.5x版本之前(包括3.5)是无序的
      • 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的
      • 字典3.7x以后是有序的
      • 字典的查询速度非常块,通常是以空间换时间
  3. 字典的创建

    • 方式一

      • dic =dict((('one',1),('two',2),('three',3)))	
        
    • 方式二

      • dic =dict(one = 1,two=2,three=3)	
        
    • 方式三

      • dic =dict({'one':1,'two':2,'three':3})
        
      • 官方推荐

    • 验证字典的合法性

    • 字典的键必须唯一,如果不唯一,则会采用后一个的键值对

  4. 字典的增删改查

      • dic['sex'] = '男' #有则改之,无则增加
      • dic.setdefault('hobby','球类运动') #增加一个键值对,如果有键值对,则不会改原列表的数据
      • dic.pop('age') #按照键删除,有返回值,如果没有这个键会报错
      • dic.pop('age','没有此键') #设置第二个参数则无论字典中有无此键都不会报错
      • dic.clear() #清空字典
      • del dic['age'] #按照键值删除,没有这个键值会报错
      • dic['sex'] = '男'
      • dic['age'] #查age,如果没有这个键,则会返回报错

      • dic.get('age') #没有此键时会返回None

      • dic.get('age','没有此键') #没有此键时会返回设置好的返回值,例如‘没有此键’

      • 三个特殊的值

        • keys

          print(dic.keys())
          print(list(dic.keys()))    #可以将所有的key转换成列表
          
          for key in dic.keys():
              print(key)
          
        • values

          • print(dic.values()) #这个是所有的值,与keys一致
        • items

          • print(dic.items())
            
            for i,j in dic.items():
                print(i,j)
            
          • a和b的值进行互换

            • a,b = b,a
          • ​~~~python 快速插入python代码
            
  5. 字典的嵌套

    • dic={
      'name':'汪峰',
      'age':48,
      'wife':[{'name':'国际章','age':38},],
      'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
      }
      #获取汪峰的名字
      print(dic.get('name'))
      #获取这个字典{'name':'国际章','age':38}
      print(dic.get('wife')[0])
      #获取汪峰妻子的名字
      print(dic.get('wife')[0].get('name'))
      #获取汪峰第三个孩子的名字
      print(dic.get('children').get('girl_three'))
      
    • dic1 = {
          'name':['alex',2,3,5],
          'job':'teacher',
          'oldboy':{'alex':['python1','python2',100]}
      }
      #将name对应的列表追加一个元素:wusir
      dic1.get('name').append('wusir')
      #将name对应的列表中的alex首字母大写
      dic1.get('name')[0]=dic1.get('name')[0].capitalize()
      #oldboy对应的字典加一个键值对:'老男孩': 'linux'
      dic1.get('oldboy')['老男孩']='linux'
      #将oldboy对应的字典中的alex对应的列表中的python2删除
      dic1.get('oldboy').get('alex').remove('python2')
      

posted on 2020-02-01 20:56  终南山码农  阅读(114)  评论(0)    收藏  举报

导航