第七天

今日内容

列表(list):

  ======================================基本使用======================================
  1、用途:多个装备,多个爱好,多门课程,多个女朋友等

  2、定义方式::[]内可以有多个任意类型的值,逗号分隔   例:x = ["xxx","yyy",111]
     数据转换方式:x = list("xxx")

  3、常用操作+内置的方法:
        优先掌握的操作:
        1、按索引存取值(正向存取+反向存取):即可存也可以取     
              x = ["xxx","yyy",111]
              print(x[0]) 正向取    print(x[-1])   反向取
              ps:可以改变列表内索引对应的值,如果索引不在列表内也不能用变量来增加

        2、切片(顾头不顾尾,步长)
              x[起始位置:结束位置:步长]      用法与字符串一样

        3、长度
              print(len(x))                      查看列表内有多少个元素

        4、成员运算in和not in
              print("xxx" in x)                   判断指定字符串是否在列表中

        5、追加(append、insert)
              x.append(添加的值)                  总是在列表最后一位添加
              x.insert(索引,添加的值)             可以指定索引位置添加
  
        6、删除(del、remove、pop)
              del x[索引]                          指定索引删除,不指定索引会将整个列表删除,索引不存在将报错,无返回值
              x.remove("指定字符串")                指定字符串删除,字符串不在列表内将报错,无返回值 
              x.pop(索引)                           指定索引删除,不指定索引会删除最后一位元素,索引不存在将报错,有返回值

        7、循环(可配合for循环使用)
              for l in x:
                    print(l)                        会将列表中的每个元素取出来
        需要掌握的操作:
        1、拷贝(copy)
              new_x = x.copy()                      原理:new_x = x[:]          !:浅拷贝

        2、查找(index)
              x.index(33)                            查找括号内元素是否在列表中,不在会报错

        3、统计指定元素的个数(count)
              print(x.count(33))                     计算列表中有几个指定元素
  
        4、清空整个列表(clear)
              print(l.clear())                       清空整个列表,会留一个无值的空列表

        5、追加写(extend)
              x.extend("hello")
              print(l)                               在原列表中追加写一个可迭代(能被for循环)的元素

        6、倒序(reverse)
              x.reverse()
              print(x)                               将整个列表倒过来

        7、排序(sort)
              l = [11,-3,9,7,20,99,74]
              l.sort()
              print(l)                                从小到大排序
              l.sort(reverse=True)
              print(l)                                从大到小排序

  ======================================该类型总结====================================
  存多个值

  有序

  可变:值变,id不变。可变==不可hash

了解:深、浅拷贝

浅拷贝:只拷贝了第一层索引对应的内存地址,第一层中不可变类型改变,新旧列表之间不受影响

如果第一层中可变类型改变,新旧列表中的值会同时改变

深拷贝:拷贝了每一层的索引对应的内存地址,每一层中不可变类型改变,新旧列表之间不受影响

每一层中可变类型改变,新旧列表中的值不会同时改变

元祖(tuple):

  ======================================基本使用======================================
  1、用途:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读

  2、定义方式:与列表类型比,只不过[]换成()
              age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

  3、常用操作+内置的方法:
        优先掌握的操作:
        1、按索引取值(正向取+反向取):只能取   
              print(x[0])                  可以按照索引取值

        2、切片(顾头不顾尾,步长):
              print(x[起始索引:结束索引:步长]

        3、长度
              print(len(x))                计算元组内有多少个元素

        4、成员运算in和not in
              print("xxx" in x)            判断指定字符串是否在元祖中

        5、循环(可配合for循环使用)
          
        需要掌握的操作:
        1、按索引查找(index)
              print(x.index(11))           查找指定元素在元祖中的索引,不存在则报错

        2、统计指定元素的个数(count)
              print(x.count(22))           查找指定元素在元祖中的个数
        ========================================================================
        x = (11,22,[33,44])
        x[0] = 22                          元祖内不可变元素值不能改变
        x[2][0] = 11
        print(x)                           元祖中可变元素,只能改变
        原理:元祖内都是索引和对应的内存地址,只要索引和内存地址不改变,值就可以改变
  ======================================该类型总结====================================
  存一个值

  有序

  不可变:值变,id就变。不可变==可hash

字典(dict):

  ======================================基本使用======================================
  1、用途:存多个值,key-value存取,取值速度快

  2、定义方式: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)


  3、常用操作+内置的方法:
        优先掌握的操作:
        1、按key存取值:可存可取:
              x = {"k1":111,"k2":222}
              print(x["k1"])                        按key来取值

              x["k3] = 333          
              print(x)                              如果key值不在字典内则增加一组,如果key值在字典中则改变字典中key对应的值

        2、长度len:
              len(x)                                计算字典中有多少组key:value

        3、成员运算in和not in
              print("k3" in x)                      判断是否在字典内的key值中

        4、删除
              del x["k1"]                           指定key值删除所相对应的值
              res = x.pop("k1")                     指定key值删除所相对应的值,有返回值
              res = x.popitem()                     随机删除字典内一组key,value值,有返回值

        5、键keys(),值values(),键值对items()
              x = {"k1":111,"k2":222}
              print(x.keys())                        显示列表中所有key值
              print(x.values())                      显示列表中所有values值
              print(x.items())                       显示列表中所有key:values值

        6、循环
              可以被for循环使用
  ======================================该类型总结====================================
  存多个值

  无序

  key必须是不可变类型,value可以是任意类型
原文地址:https://www.cnblogs.com/kk942260238/p/14180973.html