1)range
range(边界) 从0到边界
range(start, end) 从start到end
range(start, end, step) 从start到end. 步长是step

    遍历列表的时候可以使用range
    for i in range(len(list)):
        list[i]
2)什么是列表(list)
    lis=[内容,不限制类型]
    lst = list() #创建空列表
    列表就是能装对象的对象 用[]表示,内部内容用,隔开
    可以索引 切片 和 嵌套
3)列表的增删改查
    新增:
        append()是追加的意思
        lis.append(新内容)#在最后的位置追加,效率高 

        insert() 是插入的意思
        lis.insert(2,内容)#指定位置添加,可能会造成列表内的元素移动

        extend()是迭代添加
        lis.extend(刘能)#加入的内容是 刘, 能
        lis.extend("刘能","赵四")#加入的内容是 刘能, 赵四

    删除:
        pop()弹出
        lis.pop()#默认弹出最后一个 也可指定位置弹出

        remove()删除指定的元素
        lis.remove("内容") #要指定内容

        del [] 切片删除
        del lis[0] 
        del lis[1:3]

        clear() 清空

    修改:
        lis[]=新内容
        lis[1:3]=新内容
        lis[1:5:2]=新内容
        例: lst = ["功夫", "大话西游", "少林寺", "无间道", "战狼"]
            lst[2] = "西西里的美丽传说"
            #则 少林诗 改为 西西里的美丽传说 
            lst[1:3] = ["一步之遥"]
            #则 大话西游,少林寺 全部消失 加入 一步之遥
            lst[1:4:2] = ["胡辣汤", "烩面"]
            #则 大话西游 无间道 分别改为 胡辣汤 烩面
            *注意* 如果步长不是1. 那么元素的个数要匹配
    查询:
        列表是一个可迭代对象. 可以使用for循环
        for el in lis:
            print(el)#查询每一项 没有索引
        for el in range(len(lis)):
            print(el,lst[el])#索引 + 内容
    列表的操作:
        1. count()#计数
        2. sort()#排序
           sort(reverse=True) #倒序
        3. reverse() #翻转
        4. find()#索引
        5. index()#索引
        例:lst = ["马化腾", "马云", "刘强东", "周鸿祎", "李彦宏", "马云", "马云"]
            print(lst.count("马云"))#计算马云出现的次数
        lst = [1, 8, 12, 1, 4, 6, 3]
            lst.sort()#sort 是排序的意思 从小到大
            lst.sort(reverse=True)  # 倒叙排序
            lst.reverse()  # 翻转
            print(len(lst))  # 求长度, 和字符串一样
4)元组(tuple)
    元组是不可变的列表,也叫只读列表,第一层元素不可变
    用()表示,元素之间用,隔开
    ()在计算机中还表示优先级,
    ()内加了,才是元组.如(1)不是元组(1,)为元组
    tu = tuple() #创建空元组
    元组可以 切片 可以索引 可以嵌套 但是第一层元素不可修改
    不可变的数据类型还有: int, str, bool, (元组)