• python基本数据类型三


    01.python数据类型之字典

    • 字典的初识

      • 容器类数据类型 dict
      • 可变数据类型
      • 因为列表查询速度较慢且数据之间关联性不强,出现了字典
      • 字典
        • {} 键值对形式存储
        • 键必须是不可变的数据类型:int,str,bool,tuple
        • 字典3.5x版本之前(包括3.5)是无序的
        • 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的
        • 字典3.7x以后都是有序的
        • 字典的优点:查询速度非常快,存储关联性的数据
        • 字典的缺点:以空间换时间
        • 键要不可变的数据类型且是唯一的
    • 字典的创建方式
      # --encoding:utf-8 --

      """
      Create on 2019/7/26 0026 15:51
      """
      #字典的创建方式
      #方式一:
      #面试会考
      #dic = dict((('one',1),('two',2),('three',3)))
      #print(dic)  #{'one': 1, 'two': 2, 'three': 3}
      
      #方式二:
      #dic = dict(one = 1,two = 2,three = 3)#{'one': 1, 'two': 2, 'three': 3}
      #dic1 = dict(name='alex',age=18,sex='男')#{'name': 'alex', 'age': 18, 'sex': '男'}
      #print(dic1)
      
      #方式三:
      dic = {'one':1,'two':2,'three':3}
      print(dic) #{'one': 1, 'two': 2, 'three': 3}
      
      #方式四
      dic = dict(zip(['one', 'two', 'three'],[1, 2, 3])) #拉链操作
      print(dic) #{'one': 1, 'two': 2, 'three': 3}
      
      #方式五
      dic = { k: v for k,v in [('one', 1),('two', 2),('three', 3)]} #字典推导式
      print(dic) #{'one': 1, 'two': 2, 'three': 3}
      
      #方式六
      dic = dict.fromkeys('abcd','太白')
      print(dic) #{'a': '太白', 'b': '太白', 'c': '太白', 'd': '太白'}
      
    • 字典的增删改查

      --encoding:utf-8 --

      """
      Create on 2019/7/26 0026 16:00
      """
      dic = {'name':'taibai','age':18}

      直接增加 有则改之,无则增加

      dic['sex'] = '男'

      dic['age'] =24 #{'name': 'taibai', 'age': 24}

      print(dic)

      setdefault 有则不变,无则增加

      dic.setdefault('hobby','学习') #{'name': 'taibai', 'age': 18, 'hobbie': '学习'}

      dic.setdefault('age',48) #{'name': 'taibai', 'age': 18}

      print(dic)

      pop 按照键删除键值对,有返回值

      设置第二个参数则无论字典中有无此键都不会报错

      dic.pop('age') #{'name': 'taibai'}

      ret = dic.pop('age') #18 有返回值

      ret = dic.pop('hobby','没有此键')

      print(ret)

      print(dic)

      clear 清空

      dic.clear()

      print(dic)

      del

      del dic['age'] #{'name': 'taibai'}

      print(dic)

      dic['name'] = 'alex' #{'name': 'alex', 'age': 18}

      print(dic)

      print(dic['age'])

      get

      l1 = dic.get('hobby','学习') #可以设置返回值

      print(dic)

      print(l1)

      三个特殊

      keys() #可以转化为列表 可以循环

      print(dic.keys())#dict_keys(['name', 'age'])

      print(list(dic.keys()))

      values() #可以转化为列表 可以循环

      print(dic.values())#dict_values(['taibai', 18])

      print(list(dic.values())) #['taibai', 18]

      items()

      print(dic.items()) #dict_items([('name', 'taibai'), ('age', 18)])

      print(list(dic.items())) #[('name', 'taibai'), ('age', 18)]

      for i,j in dic.items():

      print(i,j) #name taibai age 18

      面试题

      a = 18
      b = 12
      a,b = b,a
      print(a,b)

    • 字典的嵌套

    02.内容回顾

    • 列表:容器型的数据类型,可以承载大量的数据,有序的数据
      • 增:
        • append 追加(在最后)
        • insert 在指定位置添加
        • extend 迭代着添加
      • 删:
        • pop 按照索引删除,有返回值 默认删除最后一个
        • remove 按照元素删除
        • clear 清空列表
        • del 索引,切片(步长)
      • 改:
      • 查:索引,切片,for循环
    • 元祖:只读列表,拆包
    • range:可以自己控制范围的数字列表,但是它不是列表

    03.数据类型的分类

    • 可变(不可哈希)的数据类型:list(列表) dict(字典) set(集合)
    • 不可变(可哈希)的数据类型:str(字符串) bool(布尔值) int(整形) tuple(元祖)

    04.相关练习

    # --encoding:utf-8 --
    
    """
    Create on 2019/7/26 0026 17:47
    """
    '''
    dic = {
        'name':'汪峰',
        'age':48,
        'wife':[{'name':'国际章','age':38}],
        'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
    }
    
    1. 获取汪峰的名字。
    
    2.获取这个字典:{'name':'国际章','age':38}。
    
    3. 获取汪峰妻子的名字。
    
    4. 获取汪峰的第三个孩子名字。
    
    
    '''
    dic = {
        'name':'汪峰',
        'age':48,
        'wife':[{'name':'国际章','age':38}],
        'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
    }
    #1. 获取汪峰的名字。
    #k1 = dic.get('name')
    #print(k1)
    #2.获取这个字典:{'name':'国际章','age':38}。
    k2 = dic.get('wife')[0]
    print(k2)
    #3. 获取汪峰妻子的名字。
    #k3 = dic.get('wife')[0]['name']
    #print(k3)
    #4. 获取汪峰的第三个孩子名字
    k4 = dic['children']['girl_three']
    print(k4)
    
    # --encoding:utf-8 --
    
    """
    Create on 2019/7/26 0026 17:24
    """
    '''
    dic1 = {
     'name':['alex',2,3,5],
     'job':'teacher',
     'oldboy':{'alex':['python1','python2',100]}
     }
    1,将name对应的列表追加⼀个元素’wusir’。
    2,将name对应的列表中的alex⾸字⺟⼤写。
    3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’。
    4,将oldboy对应的字典中的alex对应的列表中的python2删除
    
    '''
    dic1 = {
     'name':['alex',2,3,5],
     'job':'teacher',
     'oldboy':{'alex':['python1','python2',100]}
     }
    #1,将name对应的列表追加⼀个元素’wusir’。
    #dic1['name'].append('wusir')
    #print(dic1)
    
    #2,将name对应的列表中的alex⾸字⺟⼤写
    #dic1['name'][0].capitalize()
    #print(dic1)
    
    #3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’。
    # dic1['oldboy']['老男孩'] = 'linux'
    # print(dic1)
    
    #4,将oldboy对应的字典中的alex对应的列表中的python2删除
    # dic1['oldboy']['alex'].pop(-2)
    # print(dic1)
    
    
    '''
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    请在k3对应的值中追加一个元素 44,输出修改后的字典
    请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
    
    '''
    dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
    #请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
    #dic['k4'] = 'v4'
    #print(dic)
    #请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
    #dic['k1'] = 'alex'
    #print(dic)
    #请在k3对应的值中追加一个元素 44,输出修改后的字典
    dic.get('k3').append(44)
    print(dic)
    #dic['k3'].append(44)
    #print(dic)
    #请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
    dic['k3'].insert(1,18)
    print(dic)
  • 相关阅读:
    ifcfgens33 xsync async
    MySQL 忘记 root密码 两种 处理方法
    MySQL 用户 权限管理 按需分配 mysql 权限
    ip
    Mac设置su root密码
    odbc 通过 sql server 客户端 连接 mysql
    MySQL 忘记 root密码 处理方法
    mysql 查询缓存 相关变量 参数
    windows 如何 远程桌面 连接 mac
    图像清晰度的评价指标
  • 原文地址:https://www.cnblogs.com/940531gbh/p/11252579.html
Copyright © 2020-2023  润新知