Python基础5

  1. 为什么要有字典?

    1. 存储大量数据的容器型数据类型,虽然有列表,但数据与数据之间关联性不强,而且列表的查询速度较慢。
    2. 字典也是容器型数据类型,但他存储的数据之间有一定的关联性,并且字典查询速度很快。
  2. 数据类型的分类

    1. 可变的数据类型(不可哈希):list,set,dict
    2. 不可变的数据类型(可哈希):int、str、tuple、bool
  3. 字典:

    1. 字典是由{}括起来的键值对
    2. 字典的key只能是可哈希的数据类型,值可以是任意数据类型,对象。
    3. 字典在3.5x版本之前是无序的,3.6x会按照初次建立的顺序排列,3.7x之后都是有序的。
  4. 字典的优缺点:

    1. 优点:数据具有关联性,查询速度快
    2. 缺点:用空间换时间。
  5. 创建字典:

    1. dic = dict((k1,v1)........)

      dic = dict(("k1", "v1"))
      print(dic)
      执行结果:
      {'k': '1', 'v': '1'}
      
    2. dic = dic({k1:v1,k2:v2.......})

      dic = dict({'k1':'v1','k2':'v2'})
      print(dic)
      执行结果:
      {'k1': 'v1', 'k2': 'v2'}
      
    3. dic = dict(k1='v1',k2='v2'.......)

      dic = dict(k1='v1', k2='v2')
      print(dic)
      执行结果:
      {'k1': 'v1', 'k2': 'v2'}
      
  6. 字典的增删改查

    1. 字典的增

      [1]dic[key]=value #有则改之,无则增加
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      dic['k4'] = 'v4'
      dic['k1'] = 'alex'
      print(dic)
      执行结果:
      {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
      [2]dic.setdefault(key,default_value) #有则不变,无则增加
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      dic.setdefault('k4', 'v4')
      dic.setdefault('k1', 'alex')
      print(dic)
      执行结果:
      {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33], 'k4': 'v4'}
      
    2. 字典的删除

      [1]dic.pop(key,返回值) #pop()删除是有返回值的,默认返回删除的值,在指定了返回值的情况下,如果删除不存在的值,不会报错,会返回指定的值。
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      print(dic.pop('k1'))
      print(dic)
      执行结果:
      v1
      {'k2': 'v2', 'k3': [11, 22, 33]}
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      print(dic.pop('k11', 100))
      print(dic)
      执行结果:
      100
      {'k1': 'v1', 'k2': 'v2', 'k3': [11, 22, 33]}
      [2]dic.clear() #清空列表
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      dic.clear()
      print(dic)
      执行结果:
      {}
      [3]del dic[key]
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      del dic['k1']
      print(dic)
      执行结果:
      {'k2': 'v2', 'k3': [11, 22, 33]}
      
    3. 字典的改:

      [1]dic[key]=value
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      dic['k1'] = 'alex'
      print(dic)
      执行结果:
      {'k1': 'alex', 'k2': 'v2', 'k3': [11, 22, 33]}
      
    4. 字典的查:

      [1]dic.get(key,value) #按key获取值,如果key不存在,有指定值不会报错,否则会报错
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      print(dic.get('k1'))
      print(dic.get('k11', '100'))
      执行结果:
      v1
      100
      [2]dic[key]
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      print(dic['k1'])
      执行结果:
      v1
      
    5. 字典的其他操作:

      [1]keys() #获取字典的键
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      print(dic.keys())
      ----------
      for i in dic.keys():
          print(i)
      执行结果:
      dict_keys(['k1', 'k2', 'k3'])
      k1
      k2
      k3
      [2]values() #获取字典的值
      eq:
      for i in dic.values():
          print(i)
      执行结果:
      v1
      v2
      [11, 22, 33]
      [3]items() #获取key,value的元组
      eq:
      dic = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
      for i in dic.items():
          print(i)
      ------------------
      for k, v in dic.items():
          print(k, v)
      执行结果:
      ('k1', 'v1')
      ('k2', 'v2')
      ('k3', [11, 22, 33])
      ------------------
      k1 v1
      k2 v2
      k3 [11, 22, 33]
      
  7. 字典的嵌套

    1. 字典的嵌套同理列表嵌套

      dic = {
       'name':['alex',2,3,5],
       'job':'teacher',
       'oldboy':{'alex':['python1','python2',100]}
       }
      ------
      dic.get('oldboy').get('alex')[0]='pp'
      print(dic)
      执行结果:
      'python1'
      -------
      {'name': ['alex', 2, 3, 5], 'job': 'teacher', 'oldboy': {'alex': ['pp', 'python2', 100]}}
      
posted on 2020-04-07 22:51  littleSUKI  阅读(98)  评论(0)    收藏  举报