这节开始介绍序列之一的列表、和列表几乎一样的元组(区别在于元组不能增删改)以及通过键值对操作数据的字典。

    1.列表()列表最强大的操作就是

        列表:通过list()可以创建一个空列表,也可以[]。下面开始介绍列表的常规操作: 

      比如说创建一个测试列表:name = ["zhangsan","lisi","wangwu"]

      查:也就是如果获取name中单个的值,name[0]--->"zhangsan":和字符串一样,也是通过索引获取数据,并且索引从0开始。

        那么如果获取多个值呢?那么这该用到切片了。比如name[0:1]---> "zhangsan"切片的包前不包后原则  切片操作和字符串的切片一样,所以就不多介绍了。

      增:那么如何向列表添加一条数据呢? 有三种方式,并且三种方式都是不同的添加数据:

        1.1:   name.append(2)---->["zhangsan","lisi",2,"wangwu"] :从结果就可以看出来,append()方法是像末尾添加一个数据

        1.2: name.insert(0,"zhaozilong")---->["zhaozilong","zhangsan,"lisi","wangwu"] :insert()方式可以指定索引插入

        1.3:   name.extend([1,2,3])---> ["zhangsan","lisi","wangwu",1,2,3]:该方法可以合并元组和列表,不过用的最多的是合并列表:

          比如 name.extend((1,2,3,4))--->['zhangsan', 'lisi', 'wangwu', 1, 2, 3, 4]  

      改:通过下标索引修改----->name[0] = "libazhang"---->['libazhang', 'lisi', 'wangwu']    那么该如何批量修改多个值呢? 没错,这里可以用到切片:

          name[0:2] = "libazhang","libai"---->['libazhang', 'libai', 'wangwu']  :注意 左边索引之间的值必须和右边的参数个数最好是保持一致,如果不一致会出现你想不到的结果:

      比如 name[0:2] ="libai" ---->由于前面切片要求是更改两个值,而后面参数只传一个,那么会出现啥结果呢,让我们来看看  ['l', 'i', 'b', 'a', 'i', 'wangwu'] ===>没错,看到没,如果少了参数,那么他会将字符串分割来填充需要修改的两个位置,因为"libai"这里有5个字符,所以拿出两个,多出的三个也会加上去,才会出现上面的情况。

    如果参数多的会则会添加到最后需要修改的参数后面,比如name[0:2] = "AA","BB",22  ---->["AA","BB",22,"wangwu"] 这个列子中的最后修改的参数就是lisi的后面追加。。。。。。。。

      删:

        1.1:  通过值删除==>  name.remove("zhangsan")---->["lisi","wangwu"] :直接传入值名字即可删除。注意如果传入的参数是在列表中找不到的则会抛出异常:ValueError: list.remove(x): x not in list。还有种通过值删除,这得借助函数del()咯:     del(name[1])----> ["lisi","wangwu"]

        1.2:借助函数传入索引下标删除,并返回已删除的值:

            name.pop(x)----->name.pop()---->["zhangsan","lisi"]====>该函数如果不填索引位置则默认位-1,也就是删除最后一个元素,并且返回删除的元素值。。     name.pop(1)----->['zhangsan', 'wangwu'] ===>传入索引则会根据索引位置删除元素。。。。。。。。 

        1.3:还有补充一点,如果使用函数del(name)直接放入变量名,则直接删除这个变量,在打印这个变量则会报错该变量未定义.......

        那么如何将列表清空呢,一次性删除所有的元素呢???   可以用切片方式: name[:] = "" 或者 name = []  或者name=list() 都是可以滴。。。。。

        内置函数:

          1.1 count(x) ---->name.count("zhangsan")---->1 ====>查找"zhangsan"这个变量在列表中出现过几次

          1.2 reverse()----->name.reverse()---->["wangwu","lisi","zhangsan"]====>反转列表

      先重新定义一个列表,这样比较好实现下面的函数:  content = ["c","B",2,"a","$"]

          1.3 sort()---->content.sort() ----->[2, '$', 'B', 'a', 'c']  ===>从结果可以看出来默认排序是数字在最前面,然后是符号,小写字母在最后。。。

        注意:上面的reverse()和sort()会直接更改原来的列表。。。。

      如果不想修改原来的列表,则可以用另一个更为强大的函数:sorted(),可以实现以此排序以及反转:

          sorted(name,reverse=True)---->['c', 'a', 'B', '$', 2]  :设定reverse则就是确认是否反转,默认为False

    好的,列表差不多就介绍到这了,下面该说说元组了(其实元组和列表操作差不多,除了增删改 - - ).。。。。。。。

 

    2.元组  

      其实呢,元组基本上和列表查不到,唯一一个很大的区别就是元组不可变,也就是不能原处修改值。

       并且元组使用()组成,列表是用[]组成

      创建一个元组:1.name = ()  or   name = tuple()

        定义一个测试元组:  content = (1,"zhangsan",2,3,4)

      如果想获取元组的值则和列表一样,使用索引下标 , content[0] ----> 1  元组同样支持切片查找: content[0:1]---->(1,)    

    虽然说元组不能原地修改元素,但是可以合并两个元组,当然它是没有像列表那样可以extend()方法,用"+"即可 ,比如:

      name1 = (1,2,3)   tuples=tuple((3,4,5))    name1 + tuples ----->(1,2,3,3,4,5)

        上面tuple()用法注意了,参数不能直接写3,4,5比如tuple(1,2,3),里面的有括号括起来才行:

          比如 tuple({1:2,3:4}) ---->(1,2)会返回字典的键   或者tuple([1,2,3,4])----->(1,2,3,4)

    同样的,元组不能删除里面的元素,但是可以删除整个元组:

        del(name)即可。

      下面说说几个元组的内置方法:

        content.count(1)----> 1 ==>计算某个元素的个数,如果未找到则返回0

        content.index("zhangsan") ----->1 ===>返回某个元素的下标,如果没有该元素则直接抛异常

      其他的就不说了,其他的也和元组差不多的操作,比如max、len..........

  

    3.字典

      字典呢是一个可变的无序容器,并且以键值对的形式来操作元素,以大括号{}的形式表示。

          创建一个测试字典:content = {"name":"zhangsan","age":23}

        3.1:查找字典的元素----->content["name"] --->"zhangsan"  也可以 content.get("name")---->"zhangsan"

        3.2:增减字典的元素----->content["sex"] = "man"  -----> content = {"name":"zhangsan","age":23,"sex":"man"}

        3.3:修改字典的元素----->content["sex"] = "woman"  -----> content = {"name":"zhangsan","age":23,"sex":"woman"}

        3.4::删除字典的元素----->content.pop("name") ---->{"age":23}===>pop()方法是通过键删除值,并且会返回删除的值,如果不存在则会报错

       列表的一些内容方法:

          1.content.items() ------>[('age', 23), ('name', 'zhangsan')]  ====>从这可以看出将键值组成元组,然后所有的键值放在列表中。。。

          2.content.keys() ----->["name","age"]  ====>返回所有的键......同样有键当然有值 ----> content.values() ----> ["23","zhangsan"]

          3.a = content.copy----->将字典content拷贝一份并赋值给a

          4.content.update({"sex":"man"}) ----> {'age': 23, 'name': 'zhangsan', 'sex': 'man'} ====>和列表的extend()效果一样,合并一个列表。。。。

          5.content.clear() ---->{} ===>清空列表    

    好了,列表、元组、列表就介绍到这了, 有更好的会继续完善滴。。。。。。。。。。。。。。