• python全栈开发-Day5 元组、字典


    一、前言

      首先,不管学习什么数据类型,我们都带着以下几个问题展开学习:

      #1:基本使用

        1 、用途

        2 、定义方式

        3、常用操作+内置的方法

      #2:该类型总结

        1 、存一个值or存多个值, 只能存一个值 可以存多个值,值都可以是什么类型

        2 、有序or无序

        3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash

    二、元组  

    #作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),

    #主要是用来读 定义:与列表类型比,只不过[]换成() age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

    #优先掌握的操作:

      #1、按索引取值(正向取+反向取):只能取          #跟字符串,列表的取值一样,就不详细说了

     

      #2、切片(顾头不顾尾,步长) 

    1 t=(1,2,3,4,5,6)
    2 print(t[1:4])  
    3 
    4 #结果为    (2, 3, 4)

      #3、长度          

    1  t=(1,2,3,4,5,6)
    2  print(len(t))
    3  
    4  #结果为  6

      #4、成员运算in和not in         

    1  t=(1,2,3,4,5,6)
    2  print((1) in t)   
    3  
    4  #结果为 Ture   #not in 就为Flase

       #5、循环

     1 t=(1,2,3,4,5,6)
     2 
     3 #不依靠索引循环
     4 for i in t:
     5     print(i)
     6 
     7 #依靠索引的两种循环
     8 #for循环
     9 for i in range(len(t))
    10     print(i)
    11 
    12 #while 循环
    13 n=0
    14 while Ture:
    15     print(t[i])
    16     n+=1      
    17     

    三、字典

    #作用:存多个值,以key-value存取,取值速度快,每一个值都有对应的key

    #定义:

        {}内以逗号分割多个元素

        key必须是不可变类型,value可以是任意类型

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

    #本质info=dict({....}) 或 info=dict(name='egon',age=18,sex='male') 或 info=dict([['name','egon'],('age',18)]) 或 {}.fromkeys(('name','age','sex'),None)

    #优先掌握的操作:

      #1、按key存取值:可存可取

    1 dic={'name':'duoduo'}
    2 dic['age']=10
    3 print(dic)       #值为{'name':'duoduo','age':10}   可存
    4 
    5 dic['name']='qian'
    6 print(dic)       #值为{'name':'qian','age':10}     可改

     

      #2、长度len      

    1 dic={'name':'duoduo','age':18}
    2 print(len(dic))
    3 
    4 #结果为  2

     

      #3、成员运算in和not in   (判断key存在)

     

    1 dic={'name':'egon','age':18}
    2 print('name' in dic)
    3 
    4 # 结果为   Ture

      #4、删除

     1 dic={'name':'duoduo','age':18}
     2 res=dic.pop('name')     #和列表不同的地方在后面加的参数
     3 print(res)     #值为'duoduo'  
     4 print(dic)     #值为{'age':18}
     5 
     6 # del dic['name']
     7 # print(dic)             万能的删除
     8 
     9 
    10 #res=dic.pop('qian',None)    #这里的删除对象不再原来的字典
    11 #print(res)               #在后面添加None 就不会报错,返回值None

      #5、键keys(),值values(),键值对items(),循环

     

    #键keys()
    dic={'name':'duoduo','age':18}
    print(dic.keys())     
    #值为dict_keys(['name', 'age'])
    
    for key in dic.keys():     #字典.keys()这个方法省略不写直接dic也可以
        print(key)
    
    #结果为 name age
    
    #值values()
    dic={'name':'duoduo','age':18}
    print(dic.values())     #值为dict_values(['duoduo', 18])
    
    for values in dic.values():
        print(values)
    
    #结果为 duoduo  18
    
    
    #键值对items
    dic={'name':'duoduo','age':18}
    print(dic.items())      
    #值为dict_items([('name', 'egon'), ('age', 18)])
    
    for k,v in dic.items():   #k,v=('name', 'duoduo')
        print(k,v)

      #掌握的知识:

     1 dic={'name':'duoduo','age':18}
     2 print(dic.get('namexxxx'))     #没发现,输出None
     3 print(dic['namexxxxxxxxxx'])  
     4 #  这个会报错                 #小结:寻找到返回值,寻找不到返回None
     5 
     6 print(dic.popitem())      #弹出末端的一组数据
     7 print(dic)       #值为  {'name':'duoduo'}
     8 
     9 
    10 dic.update({'x':1,'age':19})
    11 #对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖
    12 print(dic)        #值为 {'name':'duoduo','age':19}
    13 
    14 
    15 dic.fromkeys()    #创建新字典的种便捷方法
    16 good_info={
    17     'name':None,
    18     'price':None,
    19     'count':None
    20 }
    21 # 'mac'  20000  10
    22 good_info['name']='mac'
    23 print({}.fromkeys(['name','age','sex'],None))
    24 #值为{'name':None,'age':None,'sex':None}
    25 
    26 
    27 #setdefaul的用处:
    28 # 1、字典有中有key,则不修改,返回原key对应的原值
    29 dic={'name':'duoduo','age':18}
    30 res=dic.setdefault('name','qian')
    31 print('返回值',res)       #返回值 duoduo
    32 print(dic)        #{'name':'duoduo','age':18}
    33 
    34 # 2、没有对应的key,则添加,返回添加的key对应的value
    35 dic={'age':18}
    36 res=dic.setdefault('name','qian')
    37 print('返回值',res)       #返回值 qian
    38 print(dic)         #{'age': 18, 'name': 'qian'}

      #总结

      #1、存多个值
      #2、无序
      #3、可变

  • 相关阅读:
    OpenCV---直方图反向投影
    OpenCV---直方图的应用(均衡化和图像比较)
    ASP.NET WEB SERVICE 创建、部署与使用
    DataSet和DataTable有用的方法
    黑客网站
    局域网中工作组和域之间的差别
    索引使用原则(精)
    C# Web Service 初级教学
    Extjs下拉多选框
    如何在UltraEdit中高亮显示PB代码
  • 原文地址:https://www.cnblogs.com/ManyQian/p/8617637.html
Copyright © 2020-2023  润新知