04_Python数据类型(二)

1.列表的操作

列表操作:索引/切片/步长
    索引:[START|-START]
        number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        print(number[-1])

    切片:[START|-START:END|-END]
        number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        print(number[-9:-1])

        注意:切片方法只顾头不固定(因此必须+1);

    步长:[START|-START:END|-END:STEP|-STEP]
        number = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        print(number[8::-1])
        print(number[-1:-10:-1])

        注意:步长方法只顾头不固定(因此必须+1);

增加:
    append(): 表示将元素追加到列表尾部;
        使用示例:
            name = [123, "abc"]
            name.append("456")
            print(name)

    insert(): 表示将元素指定位置插入到列表;
        使用示例:
            name = [123, "abc", 456, "def"]
            name.insert(1,"666")
            print(name)

    extend(): 表示将字符进行迭代追加到列表;
        使用示例:
            name = []
            name.extend("abcd")
            name.extend([1, 2, 3, 4, "Only"])
            print(name)

删除:
    pop(): 表示按索引进行删除列表内的元素;默认移除列表的最后一个元素;
        使用示例:
            name = ["Only", "Zhangsan", "Meizhi"]
            name.pop(1)
            print(name)

        注意:POP存在返回值, 将指定删除元素的进行返回, 并且只有该方法存在返回值内容;

    remove(): 表示按元素进行删除列表内元素; 
        使用示例:
            name = ["Only", "Zhangsan", "Meizhi"]
            name.remove("Zhangsan")
            print(name)

    del LIST_VAR: 表示删除指定对象;
        (A)在内存级别删除列表;
            name = ["Only", "Zhangsan", "Meizhi"]
            del name
            print(name)

        (B)按照索引删除;
            name = ["Only", "Zhangsan", "Meizhi"]
            del name[1]
            print(name)

        (C)切片+步长删除;按取的元素进行其删除;
            name = ["Only", "Zhangsan", "Meizhi", "Gongzhi"]
            del name[1:4]   # 删除列表全部元素;
            del name[1:4:2] # 删除每隔1个元素;
            del name[:-2]   # 删除前面2个元素;
            print(name)

    clear(): 表示清空列表里面的所有元素;
        使用示例:
            name = ["Zhangsan", "Meizhi"]
            name.clear()
            print(name)

修改:
    (1)按照索引修改列表内的元素;
        使用示例:
            name = ["a", "b", "c", "d"]
            name[3] = "good"
            print(name)
            name[-1] = "best"
            print(name)

    (2)按照切片修改列表内的元素;先将切片的区域内的所有内容删除, 再进行迭代添加内容至列表;
        使用示例:
            name = ["a", "b", "c", "d"]
            name[:3] = "1234"
            print(name)

查看:
    (1)按照索引和切片来查找;
        使用示例:
            name = [1, 2, 3, 4, 5, 6, 7, 8, 9]
            print(name[-9:-1])
            print(name[8::-1])
            print(name[-1:-10:-1])

    (2)使用for循环进行迭代;
        使用示例:
            name = [1, 2, 3, 4, 5, 6, 7, 8, 9]
            for i in name:
                print(i)

功能方法:
    len(): 表示统计元素的总数;
        使用示例:
            name = [1, 2, 3]
            print(len(name))

    count(): 表示统计元素出现的个数;
        使用示例:
            name = ["a", "b", "a", "b", "c"]
            print(name.count("a"))
            print(name.count("c"))

    index(): 表示通过元素查找索引且找不到则报错;可以进行其切片;
        使用示例:
            name = ["a", "b", "a", "b", "c"]
            print(name.index("a",2, 5))
            print(name.index("c",2, 5))

    sort(): 表示进行其排序;默认为从小到大进行排序;
        使用示例:
            name = [5, 3, 6, 1, 4, 2]
            name.sort()  # 从小到大排序;
            print(name)
            name.sort(reverse=True)  # 从大到小排序;
            print(name)

    reverse(): 表示将列表内的元素进行反转显示;
        使用示例:
            name = [1, 2, 3, 4, 5, 6]
            name.reverse()
            print(name)

    range(): 表示可自定义数字范围列表并且通常和for循环结合使用;顾头不顾定;
        使用示例1:
            for i in range(0,101): print(i)    # 顺序打印;[1,2,3,....100];
            for i in range(0,101,2): print(i)  # 打印偶数;
            for i in range(101,0,-1): print(i) # 反转打印;

        使用示例2:
            name = ['wusir', 'alex', [99, ' taibai', '98'], 21]
            for i in name:
                if type(i) == list:
                    for n in i:
                        print(n)
                else:
                    print(i)

列表嵌套:
    列表多层嵌套:
        实践示例:
            name = ['rb', 'pl', [99, ' mz', '98'], 21]

        (A)将"rb"变成全部的大写;
            使用示例:
                name[0] = name[0].upper()
                print(name)
        (B)将"mz"变成首字母大写且其他字母小写;
            使用示例:
                name[2][1] = name[2][1].strip().capitalize()
                print(name)
        (C)用数字的相加将99变成字符串的"100";
            使用示例:
                name[2][0] = str(name[2][0] + 1)
                print(name)            
        (D)将字符串的98变成数字的100;
            使用示例:
                name[2][2] = int(name[2][2]) + 2
                print(name)

 

2.元祖的操作

元祖操作:索引/切片/步长
    索引:[START|-START]
        number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
        print(number[-1])

    切片:[START|-START:END|-END]
        number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
        print(number[-9:-1])

    步长:[START|-START:END|-END:STEP|-SETP]
        number = (1, 2, 3, 4, 5, 6, 7, 8, 9)
        print(number[8::-1])
        print(number[-1:-10:-1])

    注意:元祖是不可修改的, 并且儿子孙子可以进行修改(前提是可对应的数据类型);
        在定义元祖时必须后面尾部添加","逗号;

功能方法:
    append(): 表示将元素追加到元祖尾部;
        使用示例:
            name = (123, "abc")
            name.append("456")
            print(name)

    len(): 表示统计元素的总数;
        使用示例:
            name = (1, 2, 3)
            print(len(name))

    count(): 表示统计元素出现的个数;
        使用示例:
            name = ("a", "b", "a", "b", "c")
            print(name.count("a"))
            print(name.count("c"))

    index(): 表示通过元素查找索引且找不到则报错;可以进行其切片;
        使用示例:
            name = ("a", "b", "a", "b", "c")
            print(name.index("a",2, 5))
            print(name.index("c",2, 5))

 

3.字典的操作

类型分类:
    (A)数据类型分类:
        可变(不可HASH):列表/字典/集合;
        不可变(可HASH):数字/布尔值/字符串/元祖;

    (B)容器类型分类:
        容器类:列表/元祖/字典;
        非容器类:数字/字符串/布尔值;

字典介绍:
    (A)以KEY/VALUE形式存储数据(映射, 存储到了的关系型数据);
    (B)唯一且不变的KEY键;
        HASH算法:字典的键通过HASH表转换成数字, 采用二分查找查询数字(即查找一半再找另一半);
    (C)字典的VALUE可以是任意数据类型;
    (D)字典的查询速度非常快, 存储的大量的关系型数据;
    (E)字典在Python3.5包含3.5之前都是无序且3.6之后是有序的;

增加:
    dic_name["KEY"] = "VALUE": 表示添加或修改键对应内容;有则进行替换否则没有就添加;
        使用示例:
        dic = {"name": "Only", "age": 18}
        dic["hobby"] = "游泳"
        print(dic)

    setdefault(): 表示添加新的键和值;有则进行忽略否则没有就添加;
        使用示例:
            dic = {"name": "Only", "age": 18}
            dic.setdefault("hobby", "游泳")
            print(dic)

删除:
    pop(): 表示按KEY进行删除字典内的键;有返回值且返回的值是键对应的值;
        使用示例:
            dic = {"name": "Only", "age": 18}
            print(dic.pop("age"))
            print(dic.pop("hobby", "没有hobby键"))

    popitem(): 表示随机删除字典内的键;有返回值且返回值为元祖(其里面是删除的键值对);
        使用示例:
            dic = {"name": "Only", "age": 18}
            print(dic.popitem())
            print(dic)

    clear(): 表示清空字典里面的所有键和值;
        使用示例:
            dic = {"name": "Only", "age": 18}
            dic.clear()
            print(dic)

    del DIC_VAR: 表示删除指定对象;
        (A)在内存级别删除列表;
            dic = {"name": "Only", "age": 18}
            del dic
            print(dic)                

        (B)按照索引删除;
            dic = {"name": "Only", "age": 18}

修改:
    dic_name["KEY"] = "VALUE": 表示添加或修改键对应内容;有则进行覆盖否则没有就添加;
        使用示例:
            dic = {"name": "Only", "age": 18}
            dic["hobby"] = "游泳"
            print(dic)

    update(): 表示两个字典的更新操作;
        使用示例:
            dic1 = {"name": "Only", "age": 22}
            dic2 = {"age": "18", "hobby": "游泳"}
            print(dic1)
            dic1.update(dic2)
            print(dic1)

查看:
    get(): 表示指定键获取指定值;
        使用示例:
            dic = {"name": "Only", "age": 18, "hobby": "游泳"}
            print(dic.get("name"))
            print(dic.get("age"))

    keys(): 表示获取指定字典的所有键;通常配合FOR循环进行使用;
        使用示例:
            dic = {"name": "Only", "age": 18, "hobby": "游泳"}
            for i in dic.keys():
                print(i)

    values(): 表示获取指定字典的所有值;通常配合FOR循环进行使用;
        使用示例:
            dic = {"name": "Only", "age": 18, "hobby": "游泳"}
            for i in dic.values():
                print(i)
    items(): 表示获取指定字典的键和值;通常配合FOR循环进行使用;
        使用示例:
            dic = {"name": "Only", "age": 18, "hobby": "游泳"}
            for key,value in dic.items():
                print(key, value)

    分别赋值逻辑:
        简单赋值:
            a,b = 1, 2
            a,b = (1, 2)
            a,b = [1, 2]

        使用示例:将a=1,b=3,用一行代码将a和b值互换;
            a = 1
            b = 2
            a,b = b, a

字典嵌套:
    实践示例:
        dic = {
            'name_list': ['碗蓉', '俊俊', '爽妹'],
            'status': None,
            'personal_msg': {
                'name': '反面教材',
                'age': 25,
                'hobby_list': ['抽烟', '喝酒', '烫头'],
            }
        }

    (A)给dic添加一个键值对"学校: 老男孩";
        dic.setdefault("学校", "老男孩")
        print(dic)
    (B)将status对应的值改成True;
        dic["status"] = True
        print(dic)
    (C)给name_list对应的列表追加一个元素: "平平";
        dic["name_list"].append("平平")
        print(dic)
    (D)给personal_msg对应的字典添加一个键值对"sex: 男"
        dic["personal_msg"].setdefault("sex", "")
        print(dic)
    (E)将hobby_list对应的列表中的烫头改成唱歌;
        dic["personal_msg"]["hobby_list"][-1] = "唱歌"
        print(dic)

 

posted @ 2018-05-02 21:44  吴任波  阅读(108)  评论(0)    收藏  举报